什么是Hive

Hive:由Facebook开源用于解决海量结构化日志的数据统计。

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。

本质是:将HQL转化成MapReduce程序

1)Hive处理的数据存储在HDFS

2)Hive分析数据底层的实现是MapReduce

3)执行程序运行在YARN上

为什么使用Hive

1)直接使用hadoop所面临的问题

(1)人员学习成本太高

(2)项目周期要求太短

(3)MapReduce实现复杂查询逻辑开发难度太大

2)Hive的好处

(1)操作接口采用类SQL语法,提供快速开发的能力。

(2)避免了去写MapReduce,减少开发人员的学习成本。

(3)扩展功能很方便。

安装

1.安装Mysql

配置

mysql> use mysql;
mysql> select User, Host, Password from user; mysql> update user set host='%' where user='root' and host='localhost';
mysql> delete from user where User='root'and Host='linux01';
mysql> delete from user where User='root'and Host='127.0.0.1';
mysql> delete from user where User='root'and Host='::1'; mysql> flush privileges;
$ sudo service mysql restart

  

2.下载解压hive包到指定目录

tar -zxf ~/softwares/installtions/apache-hive-1.2.2-bin.tar.gz -C ~/modules/

  

3.拷贝mysql驱动到hive的lib目录下

驱动压缩包下载,解压后将jar包黏贴到hive下的lib文件夹里面

4.修改配置文件

把conf目录下的所有template结尾的扩展名删掉,其中hive-default.xml.template文件复制一份到当前目录且改名为hive-site.xml

5.修改hive-evn.sh

# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/home/admin/modules/hadoop-2.7.2 # Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/home/admin/modules/apache-hive-1.2.2-bin/conf

  

6.修改hive-site.xml

<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://linux01:3306/metastorecreateDatabaseIfNotExist=true</value> <name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value> <name>javax.jdo.option.ConnectionUserName</name>
<value>root</value> 对应数据库密码
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value> <name>hive.querylog.location</name>
<value>/home/admin/modules/apache-hive-1.2.2-bin/iotmp</value> <name>hive.exec.local.scratchdir</name>
<value>/home/admin/modules/apache-hive-1.2.2-bin/iotmp</value> <name>hive.downloaded.resources.dir</name>
<value>/home/admin/modules/apache-hive-1.2.2-bin/iotmp</value> <name>hive.metastore.schema.verification</name>
<value>false</value>

  

7.hive根目录下创建iotmp文件夹

$ mkdir iotmp

  

8.启动hive(开启HDFS和YARN以及Mysql)

$ bin/hive

测试

hive> show databases;
hive> show tables;

  

Hive常用操作:
基本概念:
1.默认的hive"内部表"的存储路径:/user/hive/warehouse/数据库名称.db
2.默认hive表的存储路径也在上面的目录中
3.为什么强调Hive不是"数据库",而是"数据仓库"

新增配置
修改hive-site.xml
1.在控制台中显示当前hive所处的数据库名称
hive.cli.print.current.db修改为true

2.在控制台显示查询结果的列名
hive.cli.print.header修改为true

DLL
创建数据库
hive> create database db_online;

显示数据库
hive> show databases;

使用(进入)某一个库
hive> use db_online;

创建表
hive> create table person(id int, name string, age int) row format delimited fields terminated by '\t';

创建表的同时,从另外一张表直接导入数据进来
hive> create table if not exists person as select id, name from student;

创建表的同时,复制另外一张表的表结构,但是不拷贝另外一张表的数据
hive> create table if not exists person2 like student;

显示表内容
hive> show tables;

向表中导入数据
方式1:将本地数据导入到HDFS中的某一个hive仓库目录下
hive> load data local inpath 'test_data/person.txt' into table person;

方式2:将HDFS中的数据,导入到HDFS中的某一个hive仓库目录下(原始文件会被直接剪切到HIVE的表目录中)
hive> load data inpath '/person2.txt' into table person2;

删除一个空的库
hive> drop database db_online;

强制删除一个非空的数据库
hive> drop database db_online cascade;

表的两种类型
内部表(管理表),hive默认创建的是内部表

特点:该类型表,在drop的时候,会删除mysql中的元数据信息,以及HDFS中的数据本身。

外部表
特点:drop表的时候,不会删除HDFS中的数据本身,只会删除Mysql中的元数据信息。
还可以额外的指定数据的位置(也就是说,数据不必须非要在/user/hive/warehouse该目录下)

查询表类型
hive> desc formatted person;

Hive中表操作的两个概念
分区、分桶

  • 一个数据库就对应一个文件夹
  • 一个表也对应一个文件夹
  • 一个表可以分割为多个"分区"
  • 一个分区对应一个文件夹
  • 一个分区可以对应多个"桶"
  • 桶就意味着数据文件

分区操作
创建分区表
hive> create table dept_partition(deptno int, dname string, loc string) partitioned by (month string) row format delimited fields terminated by '\t';

向指定分区中导入数据
hive> load data local inpath 'test_data/dept.txt' into table default.dept_partition partition(month='201804');
hive> load data local inpath 'test_data/dept.txt' into table default.dept_partition partition(month='201805');

查询分区中的数据
hive> select * from dept_partition where month='201804';

Hive文档

  

大数据(8) - hive的安装与使用的更多相关文章

  1. 大数据平台Hive数据迁移至阿里云ODPS平台流程与问题记录

    一.背景介绍 最近几天,接到公司的一个将当前大数据平台数据全部迁移到阿里云ODPS平台上的任务.而申请的这个ODPS平台是属于政务内网的,因考虑到安全问题当前的大数据平台与阿里云ODPS的网络是不通的 ...

  2. 【大数据之数据仓库】安装部署GreenPlum集群

    本篇将向大家介绍如何快捷的安装部署GreenPlum测试集群,大家可以跟着我一块儿实践一把^_^ 1.主机资源 申请2台网易云主机,操作系统必须是RedHat或者CentOS,配置尽量高一点.如果是s ...

  3. 2020/4/26 大数据的zookeeper分布式安装

    大数据的zookeeper分布式安装 **** 前面的文章已经提到Hadoop的伪分布式安装.现在就在原有的基础上安装zookeeper. 首先启动Hadoop平台 [root@master ~]# ...

  4. 【大数据】Hive学习笔记

    第1章 Hive基本概念 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表, ...

  5. 大数据(9) - Flume的安装与使用

    Flume简介 --(实时抽取数据的工具) 1) Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集.聚集.移动的服务,Flume只能在Unix环境下运行. 2) Flume基于流式架构 ...

  6. 【大数据作业九】安装关系型数据库MySQL 安装大数据处理框架Hadoop

    作业要求:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3161 4.简述Hadoop平台的起源.发展历史与应用现状. 列举发展过程中 ...

  7. 大数据利器Hive

    序言:在大数据领域存在一个现象,那就是组件繁多,粗略估计一下轻松超过20种.如果你是初学者,瞬间就会蒙圈,不知道力往哪里使.那么,为什么会出现这种现象呢?在本文的开头笔者就简单的阐述一下这种现象出现的 ...

  8. 大数据入门:Hadoop安装、环境配置及检测

    目录 1.导包Hadoop包 2.配置环境变量 3.把winutil包拷贝到Hadoop bin目录下 4.把Hadoop.dll放到system32下 5.检测Hadoop是否正常安装 5.1在ma ...

  9. 大数据(13) - Spark的安装部署与简单使用

    一 .Spark概述 官网:http://spark.apache.org 1.        什么是spark Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校 ...

随机推荐

  1. HDU4667(有错)

    正规的做法是找切点.三角形三个顶点分别对圆作切线,然后求切点(2个).两圆之间也要求切点(4个). 扯淡了这就..麻烦的要命.. 下面是写了一半的代码.. void process_circle(po ...

  2. ios中Core Location跟Map Kit的基本使用

    地图类开发应用中,离不开地理位置跟MKMapView的使用,下面就记录下自己在使用这两个东西中学到的. 不过并不是所有苹果的设备都支持地理位置,我们在使用前应该做个判断,代码如下: BOOL loca ...

  3. 转:关于Android机型适配这件小事儿

    http://www.umindex.com/devices/android_resolutions 大家都知道Android机型分裂严重,在开发Android App的时候永远都面临适配N多机型的问 ...

  4. SQL多表连接查询(具体实例)

    本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student  截图例如以下: 表2:course  截图例如以下: (此时这样建表仅仅是为了演示连接SQL语句.当然实际开发中我们 ...

  5. 前端性能优化:DocumentFragments或innerHTML取代复杂的元素注入

    来源:GBin1.com 我们的浏览器执行越来越多的特性,并且网络逐渐向移动设备转移,使我们的前端代码更加紧凑,如何优化,就变得越来越重要了.前端给力的地方是可以有 许多种简单的策略和代码习惯让我们可 ...

  6. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-有时候项目会无法编译,重新生成就自动卡死或者自动退出怎么办

    删除所有中文注释,有中文注释则不一定能编译成功.     更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku.com/acetaohai123   我的在线论坛: ...

  7. win7远程凭据无法工作

    由于上周过度用脑之后没有清空内存,导致脑容量不够用,办了件傻事,但是傻人有傻福,从中收获了很多, 这个错误可以这样形容,就是从哪里开始,就从哪里结束,好了,开始正文(以win8系统为例) 想要远程某一 ...

  8. Loadrunner关于页面检查的几个函数详解

    环境:Loadrunner版本:8.0自建一个test.html文件:<html><head><meta name="google1" content ...

  9. react 执行 yarn build 后 去除 .js.map 文件

    map文件是帮助我们查看报错的位置的. map文件由devtool属性控制,如果不想要map,注释掉就可以,大约webpack.config.prod.js第57行: // devtool: shou ...

  10. fwrite和fread函数的用法小结(转)

    fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出. #include <stdio.h> size_t fread(void * ...