Hive安装和使用
Hive环境搭建
-
Hive下载
wget https://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.7.0.tar.gz
-
解压
tar -zxvf hive-1.1.00cdh5.7.0.tar.gz -C ~/APP/Hadoop
-
环境配置
系统环境变量配置(vim ~/.bash_profile)
export HIVE_HOME=/home/hadoop/APP/Hadoop/hive-1.1.0-cdh5.7.0
export PATH=$HIVE_HOME/bin:$PATH
-
文件配置
因为数据存放在关系型数据库里,所以需要安装一个mysql
修改$HADOOP_HOME目录
hive-site.xml
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/sparksql?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>root</value> </property>
-
拷贝mysql驱动到$HIVE_HOME/lib
这个可以到maven仓库去下载下来拷贝过去即可
-
启动hive
$HIME_HOME/bin/hive$bin/hive (需先启动集群)
启动以后,进入hive shell
可以去查看mysql数据库,发现里面已经多了刚才配置文件里面写的sparksql数据库,show tables可以发现多了很多表,这些表是hive启动帮助创建的
Hive 使用
-
创建表
create table hive_wordcount(context string); show tables;
可以发现多了一张表
切换到mysql数据库里面,查看表TBLS(原本是空的),
select * from TBLS;
可以发现多了一行数据,包括ID、创建时间、拥有者、表名等信息
查看表COLUMNS_V2,可以看到字段信息
select * from COLUMNS_V2;
-
加载数据到hive表
可以从本地或者HDFS加载
load data local(如果从HDFS去掉local) inpath '/home/hadoop/data/data.txt' into table hive_wordcount; select * from hive_wordcount;
可以看到数据已经加载到表里了。
-
hive进行词频统计
这里需要用到一个函数 :
load view explode(): 把每行记录按照指定分隔符进行拆解
select word, count(1) from hive_wordcount lateral view explode(split(context, ' ')) wc as word group by word;
可以看到结果如下:
如果我们这时候去刷新yarn的web界面,可以看到hive提交了mr job到平台去运行,相当于帮助我们把sql语句转换成了mr任务,并在yarn运行
但是hive更加简单,只要会使用sql即可