说明:
1.提前安装好hadoop,参考:CentOS7搭建hadoop集群
2.在node3上安装好Mysql,参考:CentOS7安装Mysql数据库
3.下载hive安装包,本文使用的版本是2.1.0,下载地址
4.准备好mysql驱动包
hive安装在集群的node3机器上
1.上传并解压
1.1新建目录
mkdir -p /develop/software
mkdir -p /develop/server
1.2上传hive安装包到/develop/software
cd /develop/software
rz
1.3解压安装包到/develop/server/
tar -zxvf apache-hive-2.1.0-bin.tar.gz -C /develop/server/
1.4查看解压后的文件
cd /develop/server/
ll
1.5修改目录名称
mv apache-hive-2.1.0-bin/ hive-2.1.0
ll
2.修改hive配置文件
2.1 hive的conf目录下新增hive.sh文件
cd /develop/server/hive-2.1.0/conf/
cp hive-env.sh.template hive-env.sh
ll
2.2 修改hive.sh文件,添加hadoop环境变量和hive的conf目录地址
HADOOP_HOME=/develop/server/hadoop-2.7.5
export HIVE_CONF_DIR=/develop/server/hive-2.1.0/conf
2.3 conf目录下新增hive-site.xml文件,配置以下内容
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- mysql用户名 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- mysql连接密码 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysql登录密码</value>
</property>
<!-- mysql连接地址 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node3:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<!-- mysql驱动 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- 是否开启metastore的schema一致性校验 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!-- 是否自动创建必须的schema -->
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
<!-- hiveservers绑定的主机 -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node3</value>
</property>
</configuration>
3.拷贝相关jar包
3.1上传mysql驱动包到lib目录下
cd /develop/server/hive-2.1.0/lib/
rz
3.2将hive-2.1.0/jdbc/目录下的hive-jdbc-2.1.0-standalone.jar 拷贝到hive-2.1.0/lib/目录
cp /develop/server/hive-2.1.0/jdbc/hive-jdbc-2.1.0-standalone.jar /develop/server/hive-2.1.0/lib/
ls -l hive-jdbc*
4.配置hive环境变量
4.1配置环境变量
vim /etc/profile.d/my_env.sh
配置以下内容:
# HIVE_HOME
export HIVE_HOME=/develop/server/hive-2.1.0
export PATH=$PATH:$HIVE_HOME/bin
4.2刷新环境变量
source /etc/profile
5.初始化
/develop/server/hive-2.1.0/bin/schematool -dbType mysql -initSchema
6.hive交互
6.1启动hadoop集群,myhadoop.sh是我自己封装好的hadoop启动脚本,可以参考:hadoop集群启动脚本,我的脚本是在node1上,所以在node1上运行myhadoop.sh start即可启动hadoop集群。
6.2 hive方式交互,在node3上输入hive命令即可进入hive交互界面
6.3 beeline client方式交互
6.3.1在node1上修改core-site.xml
6.3.1.1关闭hadoop集群
6.3.1.2编辑core-site.xml文件
vim /develop/server/hadoop-2.7.5/etc/hadoop/core-site.xml
追加以下内容
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
6.3.1.3分发core-site.xml到node2和node3
cd /develop/server/hadoop-2.7.5/etc/hadoop/
scp core-site.xml node2:$PWD
scp core-site.xml node3:$PWD
6.3.1.4重新启动hadoop
6.3.2在node3上启动metastore服务,一定要先启动这个服务,nohup 和& 表示后台启动
nohup hive --service metastore &
以上命令执行后如果命令行卡住直接按下回车(ENTER)就好
6.3.3然后启动hiveserver2服务
nohup hive --service hiveserver2 &
6.3.4查看服务启动
jps -m
6.3.5使用beeline进行交互
!connect jdbc:hive2://node3:10000
6.3.6进入beeline客户端就可以执行sql命令了
6.3.7退出客户端:!quit
7.封装hive一键操作脚本,参考:shell一键启动hive脚本
到此hive安装完成。