hiveserver2 HA高可用

架构原理介绍:
在这里插入图片描述
我准备在node1和node2上分别启用两个HiveServer2的实例,并通过zookeeper完成HA的配置。

1.Hive配置

注:这里假设你的Zookeeper已经安装好,并可用。

在两个安装了apache-hive-2.0.0-bin的机器上,分别编辑hive-site.xml,添加以下参数:

<property>
    <name>spark.deploy.recoveryMode</name>
    <value>ZOOKEEPER</value>
 </property-->
<!--设置hiveserve支持动态-->

<property>
	<name>hive.server2.support.dynamic.service.discovery</name>
	<value>true</value>
</property>

<!--设置hiveserver2的命名空间-->

<property>
<name>hive.server2.zookeeper.namespace</name>
<value>hiveserver2_zk</value>
</property>

<!--设置zk集群的客户端地址-->
<property>
<name>hive.zookeeper.quorum</name>
<value>node5:2181,node4:2181,node3:2181</value>
</property>

<!--指定zk的端口,这个是否可以去掉,因为上一步已经配置了端口,由于时间关系,我没有做测试,有兴趣可以测试一下-->
<property>
<name>hive.zookeeper.client.port</name>
<value>2181</value>
</property>

<!--指定hive.server2.thrift.bind.host-->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value> //两个HiveServer2实例的端口号要一致
</property>

2.启动服务
启动分别启动两个hiveserver2服务
3.连接
3.1JDBC连接

JDBC连接的URL规范:

jdbc:hive2://zookeeper quorum/dbName;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=nameSpace

语法解析

zookeeper quorum:为Zookeeper的集群链接串,如node5:2181,node4:2181,node3:2181
dbName : 为Hive数据库(可不填, 默认为default)
serviceDiscoveryMode=zooKeeper : 指定模式为zooKeeper
zooKeeperNamespace=nameSpace : 指定ZK中的nameSpace,即参数hive.server2.zookeeper.namespace所定义,在hive-site.sh中定义为hiveserver2_zk

3.2 beeline连接

(1)启动beeline服务:

sh $HIVE_HOME/bin/beeline

(2)在beeline中输入以下连接指令:

!connect jdbc:hive2://node5:2181,node4:2181,node3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2_zk

或者

beeline -u “jdbc:hive2://node5:2181,node4:2181,node3:2181/ding;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2_zk” -nhadoop -phadoop123$
beeline -u就不解释了
node5:2181,node4:2181,node3:2181 表示zk集群的连接信息
ding 表示要连接的hive库
serviceDiscoveryMode=zooKeeper 表示指定hiveserver连接模式为zookeeper连接
zooKeeperNamespace=hiveserver2_zk指定配置文件中的命名空间
-nhadoop 表示当前用户用hadoop用户连接beeline
-phadoop123$ 表示当前用户的密码(这里beeline的权限认证使用的是自定义的权限控制)

然后进入客户端进新房操作

(3)如没使用HiveServer2服务高可用是,则连接beeline使用下列指令:

beeline -u jdbc:hive2://localhost:10000 -n henghe

4.测试

我们杀了了其中一个hiveserver2,比如hiveserver2-1,然后还可以请求,多次测试可以使用

参考:

1)https://editor.csdn.net/md?articleId=105050425
2)https://blog.csdn.net/qq_30950329/article/details/78024282?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
3)https://blog.csdn.net/dingyanming/article/details/78606971?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这个操蛋的人生!!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值