如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

Fayson的github:

https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1

文档编写目的

Fayson在前面的文章《

如何修改Kerberos的CDH集群的HOSTNAME

》介绍了修改集群的HOSTNAME,在文章中并未提到集群启用HA的情况,本篇文章Fayson主要介绍在Kerberos环境下启用HA的CDH集群修改HOSTNAME。

内容概述

1.环境说明及停止集群服务

2.修改集群HOSTNAME及集群服务配置

3.功能验证

测试环境

1.CM和CDH版本为5.15.0

前置条件

1.集群已启用Kerberos

2.集群已启用HA

2

环境说明及配置备份

1.本次只修改集群的HOSTNAME不做角色迁移,集群角色划分如下图所示:

集群原始HOSTNAME

需要修改为HOSTNAME列表

2.通过CM的API接口备份Cloudera Manager的配置

可以通过在浏览器输入CM配置访问地址,将内容备份或者在终端使用curl将数据抓取保存至文件。

终端执如下命令保存

3

停止集群所有服务

1.通过CM停止所有CDH服务

停止成功

2.停止Cloudera Management Service服务

3.执行命令删除CDH集群中所有的kerberos证书

删除成功

4.登录CM服务所在节点执行如下命令,停止Cloudera Manager Server服务

命令行验证7180端口是否还存在

5.停止集群所有节点的cloudera-scm-agent服务

6.为了确保修改失败后能够回滚,这里建议将MySQL或PostgreSQL进行备份

4

修改集群HOSTNAME

1.执行如下命令修改集群的HOSTNAME,以cdh01.fayson.com为例

注意:按照需求将集群所有节点的HOSTNAME修改为指定的名称

2.修改/etc/hosts文件

3.将修改后的hosts文件同步至集群所有节点的/etc目录下

4.检查所有节点的HOSTNAME是否配置正确

5

修改krb5.conf配置文件

这里Fayson使用的是Active Directory提供的Kerberos服务,没有修改该服务的hostname,如果你的KDC服务是修改了HOSTNAME则需要根据如下步骤进行修改:

1.修改了KDC服务所在服务器的HOSTNAME,需要将相应的客户端配置修改, /etc/krb5.conf文件,内容如下:

2.重启kdc和kadmin服务

3.将/etc/krb5.conf文件同步至集群所有节点

测试Kerberos服务是否正常

6

修改CM服务配置并启动

1.修改Cloudera Manager Server服务的数据库配置

2.修改CDH集群所有节点cloudera-scm-agent服务的配置

注意:需要修改集群所有节点上的配置。

3.启动cloudera-scm-server服务

4.启动集群所有节点的cloudera-scm-agent服务

7

修改集群服务配置

1.登录Cloudera Manager管理界面

2.修改集群所有服务的数据库配置信息

将所有服务的数据库HOSTNAME更改为修改后的HOSTNAME

3.修改CM中Kerberos配置信息,Fayson使用的AD提供的Kerberos认证(根据需要进行修改)

将KDC和KADMIN指向的主机host更改为最新的HOSTNAME,并保存配置。

4.进入主机列表界面,重新生成集群所有服务的Kerberos信息

执行重新生成Keytab

生成成功

进入“管理”->“安全”界面查看集群所有服务的prinicipal账号信息

注意:重新生成Keytab时需要确保所有服务都是停止状态,这里旧的prinicipal信息也存在,但不影响集群服务使用,如果觉得不顺眼可以在数据库中将cm库下的CREDENTIALS表数据删除,然后再重新生成。

5.启动Cloudera Management Service服务

启动成功

6.启动Zookeeper服务,由于集群启用了HA所以这里要先启动ZK服务

7.进入HDFS的实例列表,点击任意Failover Controller服务进入“进程页面”,找到FC服务中加载的core-site.xml文件

8.登录任意ZK服务所在节点,执行zookeeper-client访问ZK服务,在命令行执行如下命令

9.执行上述操作后,进入HDFS服务的实例列表界面,选择任意FC服务进入

点击“初始化自动故障转移Znode”

10.进入Hive服务,修改Hive元数据库配置

11.进入Sentry服务,修改Sentry元数据库配置

12.修改Oozie数据库地址

13.完成以上配置后,部署客户端配置

点击“部署客户端配置”

14.启动CDH集群

集群启动成功

集群各个服务状态正常

8

功能验证

1.集群的HOSTNAME已修改为最新

2.向集群提交一个MapReduce作业测试功能是否正常

作业运行成功

9

总结

1.涉及到CM节点则需要将集群所有节点的/etc/cloudera-scm-agent/config.ini配置文件中的server_host配置修改为最新CM节点的HOSTNAME。

2.涉及到数据节点的HOSTNAME则需要修改CM服务和CDH中所有使用数据库服务的配置(如:Oozie、Sentry、Hive、CMS等)。

3.涉及到修改KDC服务器的HOSTNAME则需要修改/etc/krb.conf配置,并且需要将该配置文件更新到集群所有节点。

4.修改了集群节点的HOSTNAME,需要更新集群所有节点的/etc/hosts文件。

5.在集群启用HA后,修改了NameNode节点的HOSTNAME需要做一些额外的处理,先将ZK服务上/hadoop-ha/nameservice1的Znode删除,在HDFS的FC服务界面执行初始化。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181109B01QW700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券