前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0665-6.2.0-如何在CDH中配置HMS高可用

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

作者头像
Fayson
发布2019-07-09 10:36:03
1.5K0
发布2019-07-09 10:36:03
举报
文章被收录于专栏:Hadoop实操Hadoop实操

作者:朱超杰

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,并进行建表测试

代码语言:javascript
复制
[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.向表中插入数据

代码语言:javascript
复制
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查询

代码语言:javascript
复制
0: jdbc:hive2://hadoop1.macro.com:10000> show tables;

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

代码语言:javascript
复制
0: jdbc:hive2://hadoop1.macro.com:10000>select * from hms_test;

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

3.建表测试

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

4.数据插入测试

代码语言:javascript
复制
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表

代码语言:javascript
复制
0: jdbc:hive2://hadoop1.macro.com:10000> show tables;

执行报错,初始化MetaStroe失败

4.查询表中数据

代码语言:javascript
复制
0: jdbc:hive2://hadoop1.macro.com:10000> select * from hms_test;

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

4

总结

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档