说明:

       Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL 去查询分析需要的内容,这套SQL 简称Hive SQL,使不熟悉mapreduce 的用户很方便的利用SQL 语言查询,汇总,分析数据。而mapreduce开发人员可以把而mapreduce开发人员可以把

己写的mapper 和reducer 作为插件来支持Hive 做更复杂的数据分析。 它与关系型数据库的SQL 略有不同,但支持了绝大多数的语句如DDL、DML 以及常见的聚合函数、连接查询、条件查询。HIVE不适合用于联机online事务处理,也不提供实时查询功能。它最适合应用在基于大量不可变数据的批处理作业。HIVE的特点:可伸缩(在Hadoop的集群上动态的添加设备),可扩展,容错,输入格式的松散耦合。

一、上传安装包

包名:hive-0.12.0-bin.tar.gz

二、解压安装包

[root@hadoop-server01 ~]# ll hive-0.12.0-bin.tar.gz                          

-rw-r--r--. 1 root root 65662469 Jul  8 18:27 hive-0.12.0-bin.tar.gz

[root@hadoop-server01 ~]# tar -xvf hive-0.12.0-bin.tar.gz -C /usr/local/apps/

三、修改配置文件

[root@hadoop-server01 hive-0.12.0-bin]# pwd

/usr/local/apps/hive-0.12.0-bin

[root@hadoop-server01 hive-0.12.0-bin]# ll

total 220

drwxr-xr-x. 3 root root   4096 Oct  9  2013 bin

drwxr-xr-x. 2 root root   4096 Jul  8 18:31 conf

drwxr-xr-x. 4 root root   4096 Oct  9  2013 examples

drwxr-xr-x. 7 root root   4096 Oct  9  2013 hcatalog

drwxr-xr-x. 4 root root   4096 Jul  8 18:31 lib

-rw-rw-r--. 1 root root  23828 Oct  9  2013 LICENSE

-rw-rw-r--. 1 root root   1559 Oct  9  2013 NOTICE

-rw-rw-r--. 1 root root   3832 Oct  9  2013 README.txt

-rw-rw-r--. 1 root root 166087 Oct  9  2013 RELEASE_NOTES.txt

drwxr-xr-x. 3 root root   4096 Oct  9  2013 scripts

hive是一个工具,无需修改任何配置就可以直接使用,这里元数据默认使用hive自带的derby数据库,不过存在很多弊端,后续会讲到。

四、配置环境变量

将/usr/local/apps/hive-0.12.0-bin/bin配置到环境变量

[root@hadoop-server01 bin]# vi /etc/profile

export HIVE_HOME=/usr/local/apps/hive-0.12.0-bin

export PATH=$PATH:$ZK_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin

保存退出

生效配置:

[root@hadoop-server01 bin]# source /etc/profile

五、运行客户端hive脚本验证

在运行hive客户端工具之前,需要先启动hadoop集群,因为hive只是一个SQL翻译器,翻译的SQL转换成MapReduce程序,因此需要使用MapReduce运行框架。

因此使用hive工具之前,需要先启动hadoop集群

1、启动hdfs及yarn

[root@hadoop-server01 bin]# start-dfs.sh

[root@hadoop-server01 bin]# start-yarn.sh

[root@hadoop-server01 bin]# jps

2854 SecondaryNameNode

3277 NodeManager

2997 ResourceManager

2704 DataNode

2584 NameNode

2、启动客户端hive工具

[root@hadoop-server01 bin]# cd /usr/local/apps/hive-0.12.0-bin/bin

[root@hadoop-server01 bin]# ./hive

hive>

或者直接执行hive命令,因为已经配置了环境变量

3、验证测试

这里假设有一个文件具有以下类数据,假设文件名称为user.txt

userid username orgid logintimes

U0001 Zhangsan G0001 10

U0002 Lisi G0001 12

U0003 Wangwu G0002 13

U0004 Liuneng G0002 18

U0005 Zhaosi G0004 29

数据已制表符\t分割

现在针对这种文件数据结构,利用hive创建一个存放这种结构数据的hive表

hive> create table t_user

   > (userid string,username string,orgid string,logintimes int)

   > row format delimited

   > fields terminated by '\t';

OK

Time taken: 0.689 seconds

--说明:1 hive中字段类型同关系型数据库有很大差别,hive中数据类型基本和java的类型保持一致

    2 row format delimited fields terminated by '\t' --是用来设置创建的表在加载数据的时候,支持的列分隔符,这里使用制表符\t

这里已经给大家完成了hive的安装配置及建表测试。