说明:该文档的部署是基于hadoop HA集群搭建成功的前提下,使用本文档前请先依照hadoop HA搭建文档部署好相关的集群。然后在该集群上进行本文档操作。
一、安装mysql(用于存储元数据)
这里使用docker安装,见docker笔记,mysql安装。
这里需要特别注意:安装完mysql后需要设置权限
grant all privileges on *.* to root@'%' identified by 'root' with grant option;
grant all privileges on *.* to 'APP'@'%' identified by 'root' with grant option;
二、hive下载
下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
三、安装包上传、解压,环境变量配置
1.上传
2.解压
tar -zvxf apache-hive-3.1.2-bin.tar.gz
3.移动到指定安装位置
4.环境变量设置
四、解决Hive与Hadoop之间guava版本差异
说明:hive和hadoop都有guava的jar,但是两个的版本不一致。这里我们将hive的guava删除,复制hadoop的guave到hive
cd /opt/apache-hive-3.1.2/lib
rm -rf guava-19.0.jar
cp /usr/local/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar .
五、修改配置文件
cd /usr/local/apache-hive-3.1.2/conf
mv hive-env.sh.template hive-env.sh
vim hive-env.sh
export HADOOP_HOME=/usr/local/hadoop-3.3.0
export HIVE_CONF_DIR=/usr/local/apache-hive-3.1.2/conf
export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-3.1.2/lib
hive-site.xml
<configuration>
<!--存储元数据mysql相关配置-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop1:3306/hive3?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>root</value>
</property>
<!--H2S运行绑定host-->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>hadoop1</value>
</property>
<!--远程模式部署metastore metastore地址-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop1:9083</value>
</property>
<!--关闭元数据存储授权-->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
</configuration>
六、上传mysql jdbc驱动到hive安装包Iib下
mysql-connect-xxx.jar
七、初始化元数据
cd apache-hive-3.1.2/bin
./schematool -initSchema -dbType mysql -verbos
八、在hdfs创建hive存储目录(如存在则不用操作)
hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
九、启动
metastore服务启动方式
/usr/local/apache-hive-3.1.2/bin/hive --service metastore
nohup /usr/local/apache-hive-3.1.2/bin/hive --service metastore > metastore.log 2>&1 &
beeline使用需要启动hiveserver2(依赖metastore,需要等metastore完全启动完成后再启动hiveserver2),该方法官方推荐使用
/usr/local/apache-hive-3.1.2/bin/hive --service hiveserver2
nohup /usr/local/apache-hive-3.1.2/bin/hive --service hiveserver2 > hiveserver2.log 2>&1 &
HiveServer2服务介绍:
远程模式下beelinei通过Thrift连接到单独的liveServer:2服务上,这也是官方推荐在生产环境中使用的模式。
HiveServer:2支持多客户端的并发和身份认证,旨在为开放API客户端如JDBC、ODBC提供更好的支持。
使用beeline链接:
/usr/local/apache-hive-3.1.2/bin/beeline
beeline>! connect jdbc:hive2://hadoop1:10000
beeline>root
beeline>直接回车(不需要密码)