说明:
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的安装配置及建表测试。