Hive的三种安装配置(本人常用第三种远程模式安装)
一. 在所有节点下修改好core-site.xml文件配置
代码如下:
<!-- 整合hive -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
二. 内嵌模式安装
1) 上传安装包
2) 解压并改名
tar zxvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin hive
3) 解决hadoop、hive之间guava版本差异
删除19.0版本的guava
cd /export/server/hive
rm -rf lib/guava-19.0.jar
把hadoop安装包下的guava复制到删除的文件目录下
cp /export/server/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/
4) 修改hive环境变量文件 添加Hadoop_HOME
进入配置文件
cd /export/server/hive/conf/
将模板文件修改一份
mv hive-env.sh.template hive-env.sh
修改配置文件
vi hive-env.sh
添加下面的内容(和自己的配置一致)
export HADOOP_HOME=/export/servers/hadoop-3.1.4
export HIVE_CONF_DIR=/export/servers/hive/conf
export HIVE_AUX_JARS_PATH=/export/servers/hive/lib
5) 初始化metadata
cd /export/servers/hive
bin/schematool -dbType derby -initSchema
6) 启动hive服务
记得先启动hdfs和yarn
并且关闭安全模式
hdfs dfsadmin -safemode leave
bin/hive
启动运行成功
注意:Hive3版本需要用户手动进行元数据初始化动作。内嵌模式下,判断是否初始化成功的依据是执行命令之后输出信息和执行命令的当前路径下是否有文件产生。
三. 本地模式安装
1) mysql安装
已经安装过,此步骤略过.
2) 上传安装包并删除内嵌模式安装的hive
3) 解压并改名
cd /export/servers/
tar zxvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin hive
4) 解决hadoop、hive之间guava版本差异
cd /export/servers/hive
rm -rf lib/guava-19.0.jar
cp /export/servers/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/
5) 添加mysql jdbc驱动到hive安装包lib/文件下
6) 修改hive环境变量文件 添加Hadoop_HOME
修改配置文件名字
cd /export/servers/hive/conf/
mv hive-env.sh.template hive-env.sh
对其修改
vim hive-env.sh
export HADOOP_HOME=/export/servers/hadoop-3.1.4
export HIVE_CONF_DIR=/export/servers/hive/conf
export HIVE_AUX_JARS_PATH=/export/servers/hive/lib
7) 新增hive-site.xml 配置mysql等相关信息
vi hive-site.xml
加入以下内容
<configuration>
<!-- 存储元数据mysql相关配置 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value> jdbc:mysql://hadoop01:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</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>Root123!</value>
</property>
<!-- 关闭元数据存储授权 -->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- 关闭元数据存储版本的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
</configuration>
8) 初始化metadata
cd /export/servers/hive
bin/schematool -initSchema -dbType mysql -verbos
初始化成功会在mysql中自动创建hive数据库和74张表
9) 启动hive服务
记得先启动hdfs和yarn
并且关闭安全模式
hdfs dfsadmin -safemode leave
bin/hive
启动成功并且可以正常操作
3. 远程模式安装(我习惯用这种方式)
1) 解压并改名
2) 解决hadoop、hive之间guava版本差异
cd /export/servers/hive
rm -rf lib/guava-19.0.jar
cp /export/servers/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/
3) 添加mysql jdbc驱动到hive安装包lib/文件下
4) 修改hive环境变量文件 添加Hadoop_HOME
cd /export/servers/hive/conf/
mv hive-env.sh.template hive-env.sh
vi hive-env.sh
export HADOOP_HOME=/export/servers/hadoop-3.1.4
export HIVE_CONF_DIR=/export/servers/hive/conf
export HIVE_AUX_JARS_PATH=/export/servers/hive/lib
5) 新增hive-site.xml 配置mysql等相关信息
vi hive-site.xml
<configuration>
<!-- 存储元数据mysql相关配置 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value> jdbc:mysql://hadoop01:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</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>Root23!</value>
</property>
<!-- H2S运行绑定host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>hadoop01</value>
</property>
<!-- 远程模式部署metastore 服务地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop01:9083</value>
</property>
<!-- 关闭元数据存储授权 -->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- 关闭元数据存储版本的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
</configuration>
6) 初始化metadata
cd /export/servers/hive
bin/schematool -initSchema -dbType mysql -verbos
初始化成功会在mysql中创建74张表
7) 前台启动 关闭ctrl+c
/export/servers/hive/bin/hive --service metastore
克隆一个会话重新启动
/export/servers/hive/bin/hive
8) 后台启动 进程挂起 关闭使用jps + kill
#输入命令回车执行 再次回车 进程将挂起后台
nohup /export/servers/hive/bin/hive --service metastore &
日志输出到了如下文件中
再次启动hive
退出时记得kill掉后台进程
9) 前台启动开启debug日志
/export/servers/hive/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console
四. 将hive安装到hadoop03
1) 将安装包上传
2) 解压改名
3) 解决hadoop、hive之间guava版本差异
cd /export/servers/hive
rm -rf lib/guava-19.0.jar
cp /export/servers/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/
4) 修改hive环境变量文件 添加Hadoop_HOME
cd /export/servers/hive/conf
mv hive-env.sh.template hive-env.sh
vi hive-env.sh
export HADOOP_HOME=/export/servers/hadoop-3.1.4
export HIVE_CONF_DIR=/export/servers/hive/conf
export HIVE_AUX_JARS_PATH=/export/servers/hive/lib
5) 新增hive-site.xml 配置mysql等相关信息
vi hive-site.xml
添加以下信息
<configuration>
<!-- 远程模式部署metastore 服务地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop01:9083</value>
</property>
</configuration>
6) 启动hive(Hadoop01的 metastore服务必须开启)
测试,发现成功同步
五. bin/beeline客户端的使用
1) 在matestore服务的基础上启动hiveserver2
/export/servers/hive/bin/hive --service hiveserver2
注意hiveserver启动后需要等一会儿才能使用,这一点比较难受
2) 启动beeline
/export/servers/hive/bin/beeline
无日志启动
/export/servers/hive/bin/beeline --hiveconf hive.server2.logging.operation.level=NONE
设置本地运行避免小数据通过mr处理缓慢
set hive.exec.mode.local.auto=true;
! connect jdbc:hive2://hadoop01:10000
测试,成功运行
并且发现beeline客户端还可以打印日志信息