Hive基础概念和用途
Hive是Hadoop下的顶级 Apache项目,早期的Hive开发工作始于2007年的 Facebook。
它可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
Hive的优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。
Hive的主流版本
-
选择任何技术的版本要考虑哪些方面:功能,稳定性,可维护性,兼容性…
-
策略:要考虑不新不旧的稳定版本
-
当前 Hive 的主流版本有两个:
-
hive-1.x,其中使用比较多的是hive-1.2.x的版本,最后一个稳定版本是hive-1.2.2,如果使用这个版本,你的hive将来没法集成spark。
-
hive-2.x,现行主流的hive使用版本,现行稳定的hive-2.x版本中的,我们选择使用hive-2.3.6
-
HDP(商业版大数据环境)2.6.3内置的hive为1.2.1
Hive集群构建
单机版本环境构建
- 用途:测试,学习,快速使用
基本要求:启动hadoop
1、上传安装包
apache-hive-2.3.6-bin.tar.gz
2、解压安装包
tar -zxvf apache-hive-2.3.6-bin.tar.gz -C ../install/
3、进入到bin目录,运行hive脚本
cd apache-hive-2.3.6-bin/bin
./hive
4、测试使用
show databases;
集群版环境构建
基本要求:
安装好hadoop和mysql(MySQL配置远程连接权限)
第1步:上传安装包
上传apache-hive-2.3.6-bin.tar.gz到服务器节点中。
第2步:解压安装包到对应的Hive安装目录中
tar -zxvf apache-hive-2.3.6-bin.tar.gz -C ../install/
第3步:创建配置文件 hive-site.xml
touch hive-site.xml
vi hive-site.xml
在这个新创建的配置文件中加入如下内容即可:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop1:3306/hive?createDatabaseIfNotExist=true&verifyServerCertificate=false&useSSL=false</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>hadoop</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
第4步:加入MySQL驱动
加入MySQL驱动包 mysql-connector-java-5.1.40-bin.jar 该jar包放置在hive的安装根路径下的lib目录中,hive要读写MySQL
第5步:复制Hadoop集群的配置文件
一定要记得把Hadoop集群中的 core-site.xml 和 hdfs-site.xml 两个配置文件都放置在Hive安装目录下conf目录中。
cp core-site.xml hdfs-site.xml ~/install/apache-hive-2.3.6-bin/conf/
第6步:复制hive到其他节点
scp -r apache-hive-2.3.6-bin root@hadoop2:/root/install
scp -r apache-hive-2.3.6-bin root@hadoop3:/root/install
第7步: 安装完成,配置环境变量
export HIVE_HOME=/home/bigdata/apps/apache-hive-2.3.6-bin
export PATH=$PATH:$HIVE_HOME/bin
第8步:验证Hive安装
hive --service version
第9步:初始化元数据库
注意:当使用的hive是1.x之前的版本,不做初始化也是OK的,当Hive第一次启动的时候会自动进行初始化,只不过会不会生成足够多的元数据库中的表。在使用过程中会慢慢生成。但最后进行初始化。如果使用的2.x版本的Hive,那么就必须手动初始化元数据库。使用命令:
schematool -dbType mysql -initSchema
第10步:启动Hive 客户端
hive
hive --service cli
HiveServer2服务部署方法如下:
修改的Hadoop集群中的 core-site.xml 和 hdfs-site.xml,并且一定要记得,所有节点都的修改。重启Hadoop集群
第一步:修改hadoop集群的hdfs-site.xml配置文件:加入一条配置信息,表示启用webhdfs
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
第二步:修改hadoop集群的core-site.xml配置文件:加入两条配置信息:表示设置hadoop集群的代理用户
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
启动Hiveserver2服务
nohup hiveserver2 1>/root/install/apache-hive-2.3.6-bin/log/hiveserver.log 2>/root/install/apache-hive-2.3.6-bin/log/hiveserver.err &
启动beeline客户端,HUE,HDP的hive界面
beeline -u jdbc:hive2://hadoop1:10000 -n root
扩展:Hiveserver2 Web UI
Hive从2.0 版本开始,为 HiveServer2 提供了一个简单的 WEB UI 界面,界面中可以直观的看到当前链接的会话、历史日志、配置参数以及度量信息。
hive-site.xml 配置文件:
<property>
<name>hive.server2.webui.host</name>
<value>hadoop1</value>
</property>
<property>
<name>hive.server2.webui.port</name>
<value>15010</value>
</property>
重启 Hiveserver2,访问 Web UI:http://hadoop5:15010