0665-6.2.0-如何在CDH中配置HMS高可用

Fayson的github: https://github.com/fayson/cdhproject

推荐关注微信公众号:“Hadoop实操”,ID:gh_c4c535955d0f

1 文档编写目的

Metastore HA解决方案被设计用来处理metastore服务故障。当一个部署的metastore宕机时,metastore服务可能持续相当长的时间不可用,直到服务被重新拉起。为了避免这种服务中断情况,需要部署Hive Metastore HA模式。Cloudera建议Metastore的每个实例在单独的集群主机上运行,突出高可用作用

内容概述
1.使用CM启用HMS HA
2.HMS HA功能测试
3.总结

测试环境
1.CM和CDH版本为5.16.1
2.集群未启用kerberos
3.采用root用户

前置条件
1.CDH集群已安装成功并正常运行
2.集群已添加Hive服务
3.拥有Cloudera Manager的管理员账号

2 使用CM启用HMS HA

使用Cloudera Manager管理员登录CM主页。

1.进入Hive服务页面,选择“实例” -> “添加角色实例”

在这里插入图片描述

2.在自定义角色分配页面,为HMS服务选择安装的主机
在这里插入图片描述
3.审核更改,单击“完成”。
在这里插入图片描述
4.重启过时服务配置

在这里插入图片描述

重启完成后,单击“完成”
在这里插入图片描述
进入Hive实例页面,查看当前有两个HMS服务正常运行

在这里插入图片描述

3 HMS HA功能测试

3.1 HMS服务正常运行

1.使用Beeline连接HiveServer2,并进行建表测试

[root@hadoop1 ~]# beeline
beeline> !connect jdbc:hive2://hadoop1.macro.com:10000
0: jdbc:hive2://hadoop1.macro.com:10000> CREATE TABLE HMS_test(s1 int, s2 string)
. . . . . . . . . . . . . . . . . . . .> row format delimited fields terminated by '\t';

在这里插入图片描述

2.向表中插入数据

0: jdbc:hive2://hadoop1.macro.com:10000> load data local inpath "/data0/hms_test.txt" into table hms_test;

在这里插入图片描述
3.查询数据
在这里插入图片描述

3.2 模拟HMS服务宕机

使用CM,进入Hive实例页面,停止其中一个HMS服务
在这里插入图片描述
1.使用beeline连接HiveServer2,可以正常连接访问

在这里插入图片描述

2.查看Hive表,并执行SELECT查询

0: jdbc:hive2://hadoop1.macro.com:10000> show tables;

在这里插入图片描述

由上图可知,可以正常查看上一节创建的hms_test表

0: jdbc:hive2://hadoop1.macro.com:10000>select * from hms_test;

在这里插入图片描述

由上图可以看出,当其中一个HMS服务宕机后,依然可以访问之前创建的hms_test表,并执行查询。

3.建表测试

0: jdbc:hive2://hadoop1.macro.com:10000> CREATE TABLE hms_test2
. . . . . . . . . . . . . . . . . . . .> (s3 int,
. . . . . . . . . . . . . . . . . . . .> s4 string
. . . . . . . . . . . . . . . . . . . .> )
. . . . . . . . . . . . . . . . . . . .> row format delimited fields terminated by '\t';

在这里插入图片描述
4.数据插入测试

0: jdbc:hive2://hadoop1.macro.com:10000> load data local inpath "/data0/hms_test.txt" into table hms_test2;

在这里插入图片描述
数据插入正常

3.3 两个HMS服务同时宕机

1.使用CM,在Hive实例页面停止所有HMS服务

在这里插入图片描述

2.使用Beeline连接HiveServer2
在这里插入图片描述

由上图可以看出,依然可以正常连接访问

3.查看Hive表

0: jdbc:hive2://hadoop1.macro.com:10000> show tables;

在这里插入图片描述

执行报错,初始化MetaStroe失败

4.查询表中数据

0: jdbc:hive2://hadoop1.macro.com:10000> select * from hms_test;

在这里插入图片描述

执行报错,同样时初始化MetaStore失败

4 总结

配置HMS服务的高可用之后,当有HMS服务宕机,但只要有一个HMS服务是正常工作的,Hive client操作都可以正常使用,当所有HMS服务都宕机时,Hive client不能提供任何操作。因此,HMS服务的高可用可以解决HMS服务的不正常工作问题,避免了单点故障。但是前提是HMS服务要安装在集群的不同主机上,才能突出高可用的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值