0


HIVE4.0.1在Hadoop HA部署hiveserver2模式

本文基于CENTOS7,在Hadoop3.4.0版本vm虚拟机3节点HA集群的基础上进行的搭建。
一、前置条件
本文使用MySQL8.0.26作为HIVE数据库,不使用hive自带的derby数据库,因为其不支持多客户端访问,也不方便查询。
所以必须先安装MySQL。版本可以自行决定,如果没有安装,请自行参考安装,也可以参考以下博文:
1、https://blog.csdn.net/estelle_belle/article/details/111156743
2、https://blog.csdn.net/u011374856/article/details/140202813
二、配置部署HIVE
本文集群三个节点分别为:master,slave1,slave2
将hive-4.0.1的tar包解压到master节点一个目录下,本文是/usr/hive-4.0.1/
1、添加hive环境变量:
vim /etc/profile

在这里插入图片描述
生效命令 source /etc/profile
2、解压后的HIVE的文件目录结构如下图所示:(请注意这里的log文件夹,是我自己创建,后面请注意关注这个路径)
在这里插入图片描述
我们的配置主要在conf文件夹中进行,conf的目录结构如图所示:
在这里插入图片描述
3、配置hive-env.sh
conf 文件夹中没有hive-env.sh文件,我们需要把下图所示的文件进行重命名的操作:
在这里插入图片描述
进入当前路径后,使用
mv hive-env.sh.template hive-env.sh
或者直接在图形界面下重命名。
编辑hive-env.sh文件:vim hive-env.sh
添加如下内容:

HADOOP_HOME=/usr/hadoop3
export HIVE_CONF_DIR=/usr/hive-4.0.1/conf

在这里插入图片描述

4、配置日志目录
如同上一步一样,把如图所示的日志配置文件重命名为hive-log4j2.properties
在这里插入图片描述
找到并修改property.hive.log.dir = /usr/hive-4.0.1/log
(改成你自己的,刚才我在上边有提到,我这里设置了自己的日志目录)
5、修改default文件,把如图所示的默认配置文件重命名为hive-default.xml
在这里插入图片描述
6、配置hive-site.xml文件
在你的conf文件夹内新建一个hive-site.xml文件,配置以下内容:

<configuration><!-- jdbc连接的URL --><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://master:3306/hivemeta?createDatabaseIfNotExist=true&amp;allowPublicKeyRetrieval=true&amp;useSSL=false&amp;serverTimezone=GMT</value></property><!-- jdbc连接的Driver--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value></property><!-- jdbc连接的username 你的用户--><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><!-- jdbc连接的password 你的MYSQL密码--><property><name>javax.jdo.option.ConnectionPassword</name><value>root123</value></property><!-- Hive默认在HDFS的工作目录 --><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><!-- 指定hiveserver2连接的host --><property><name>hive.server2.thrift.bind.host</name><value>master</value></property><!-- 指定hiveserver2连接的端口号 --><property><name>hive.server2.thrift.port</name><value>10000</value></property><property><name>hive.server2.enable.doAs</name><value>false</value></property><property><!-- 查询数据时 显示出列的名字 --><name>hive.cli.print.header</name><value>true</value></property><property><!-- 在命令行中显示当前所使用的数据库 --><name>hive.cli.print.current.db</name><value>true</value></property></configuration>

7、添加Java访问MySQL的jar包,放到hive路径的lib文件夹下。
可以去官网上下载,但是速度比较慢,可以直接在IDEA中利用Maven下载,在pom.xml里写依赖(这里是我的MySQL的版本号,根据需求改为自己的):

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency>

然后去本地maven仓库mysql文件夹内
在这里插入图片描述
在这里插入图片描述

8、初始化HIVE的元数据库
schematool -initSchema -dbType mysql
直到提示初始化完成(Initialize completed)即为成功

注意:这里要确保mysql服务开启,使用命令
systemctl status mysqld
如图所示:
在这里插入图片描述
然后登录到mysql查看是否有hive元数据库,如图所示
在这里插入图片描述
注意:这里的这个元数据名称是我在第六步中配置hive-site.xml文件里指定的,名字自己指定,参考其他博客的话注意这个名称。
在这里插入图片描述
9、需要修改的hadoop配置:
①修改core-site.xml,添加如下配置:

<property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.root.groups</name><value>*</value></property>

②修改yarn-site.xml,添加如下配置:

<property><name>mapreduce.application.classpath</name><value>$HADOOP_HOME/etc/hadoop:$HADOOP_HOME/share/hadoop/common/lib/*:$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/hdfs:$HADOOP_HOME/share/hadoop/hdfs/lib/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/yarn:$HADOOP_HOME/share/hadoop/yarn/lib/*:$HADOOP_HOME/share/hadoop/yarn/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*:$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/etc/hadoop:$HADOOP_HOME/share/hadoop/common/lib/*:$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/hdfs:$HADOOP_HOME/share/hadoop/hdfs/lib/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/yarn:$HADOOP_HOME/share/hadoop/yarn/lib/*:$HADOOP_HOME/share/hadoop/yarn/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*:$HADOOP_HOME/share/hadoop/mapreduce/*:/opt/hadoop/contrib/capacity-scheduler/*.jar:/opt/hadoop/contrib/capacity-scheduler/*.jar</value></property>

注意:修改配置文件后同步集群所有节点

10、将配置好的HIVE分发一份到slave1。

11、启动ZooKeeper,启动集群strat-all.sh

12、在master节点上单独开启一个终端窗口,输入命令hiveserver2,如图
在这里插入图片描述
注意:这个窗口不要关闭,单独开启
13、切换到slave1节点,打开终端输入beeline命令
在这里插入图片描述
再次输入命令:
! connect jdbc:hive2://master:10000

这里的端口号是在hive-site.xml文件里配置的端口号,有点的博客不一样,请注意。
这时候会提示输入,用户名,密码,输入完成后应该成功登录。如图所示:

在这里插入图片描述
14、测试(如果有出错,请查看log下的日志文件调试错误)
①输入命令,show databases;
能否显示如图所示的类似结果:
在这里插入图片描述
输入命令:create database hivet_test;
然后再查看数据库,看能否出现上图所示。
②输入命令:use hive_test;
再输入命令:create table mytest(id int,name string);
看能否创建表成功,然后使用 show tables; 查看
在这里插入图片描述
③、输入命令:insert into table mytest values(1,‘zhagnsan’);
测试是否能插入数据成功。
输入命令后查看master节点的开启hiveserver2的终端窗口,有日志输出,如图所示:
在这里插入图片描述
如果报错,请查看8088的MR作业日志。


本文转载自: https://blog.csdn.net/Mickey_flY/article/details/143830813
版权归原作者 Mickey_flY 所有, 如有侵权,请联系我们删除。

“HIVE4.0.1在Hadoop HA部署hiveserver2模式”的评论:

还没有评论