kerberos 更改用户密码(0446-如何在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不做角色迁移,集群角色划分如下图所示:

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(1)

集群原始HOSTNAME

IP地址

HOSTNMAE

节点说明

172.27.xx.xx

cdh01.fayson.com

NN、RM、JN、Oozie

172.27.xx.xx

cdh02.fayson.com

NN、RM、JN、Oozie、DataNode

172.27.xx.xx

cdh03.fayson.com

DataNode

172.27.xx.xx

cdh04.fayson.com

DataNode

需要修改为HOSTNAME列表

IP地址

HOSTNMAE

节点说明

172.27.xx.xx

cdh1.fayson.com

NN、RM、JN、Oozie

172.27.xx.xx

cdh2.fayson.com

NN、RM、JN、Oozie、DataNode

172.27.xx.xx

cdh3.fayson.com

DataNode

172.27.xx.xx

cdh4.fayson.com

DataNode

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

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(2)

终端执如下命令保存

[root@cdh04 ~]# curl -u admin:admin http://cdh01.fayson.com:7180/api/v19/cm/deployment > cme-cm-export.json

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(3)

3

停止集群所有服务

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(4)

停止成功

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(5)

2.停止Cloudera Management Service服务

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(6)

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(7)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(8)

删除成功

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(9)

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

[root@cdh01 ~]# systemctl stop cloudera-scm-server [root@cdh01 ~]# systemctl status cloudera-scm-server

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(10)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(11)

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

[root@cdh01 shell]# sh ssh_do_all.sh node.list "systemctl stop cloudera-scm-agent"

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

4

修改集群HOSTNAME

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

[root@cdh01 shell]# hostnamectl set-hostname cdh1.fayson.com [root@cdh01 shell]# hostname

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(12)

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

2.修改/etc/hosts文件

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(13)

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

[root@cdh1 ~]# cd /data/disk1/shell/ [root@cdh1 shell]# sh bk_cp.sh ip.list /etc/hosts /etc/

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(14)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(15)

5

修改krb5.conf配置文件

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

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

[root@cdh01 ~]# vim /etc/krb5.conf … [realms] FAYSON.COM = { kdc = cdh1.fayson.com admin_server = cdh1.fayson.com } [domain_realm] .fayson.com = FAYSON.COM fayson.com = FAYSON.COM

2.重启kdc和kadmin服务

[root@cdh1 krb5kdc]# systemctl restart kadmin [root@cdh1 krb5kdc]# systemctl restart krb5kdc

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(16)

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

[root@cdh01 shell]# sh bk_cp.sh node.list /etc/krb5.conf /etc/

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(17)

测试Kerberos服务是否正常

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(18)

6

修改CM服务配置并启动

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(19)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(20)

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

3.启动cloudera-scm-server服务

[root@cdh1 ~]# systemctl start cloudera-scm-server [root@cdh1 ~]# netstat -apn |grep 7180

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(21)

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

[root@cdh1 ~]# cd /data/disk1/shell/ [root@cdh1 shell]# sh ssh_do_all.sh node.list "systemctl start cloudera-scm-agent"

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(22)

7

修改集群服务配置

1.登录Cloudera Manager管理界面

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(23)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(24)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(25)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(26)

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(27)

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

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(28)

执行重新生成Keytab

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(29)

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(30)

生成成功

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(31)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(32)

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

5.启动Cloudera Management Service服务

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(33)

启动成功

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(34)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(35)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(36)

在core-site.xml文件中找到” ha.zookeeper.auth”属性的值

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(37)

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

[zk: localhost:2181(CONNECTED) 2] addauth digest hdfs-fcs:QROKivFr9tYPAXuAbob8uXgYh5i8LZ [zk: localhost:2181(CONNECTED) 3] ls /hadoop-ha [nameservice1] [zk: localhost:2181(CONNECTED) 4] rmr /hadoop-ha/nameservice1

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(38)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(39)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(40)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(41)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(42)

12.修改Oozie数据库地址

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(43)

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(44)

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(45)

点击“部署客户端配置”

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(46)

14.启动CDH集群

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(47)

集群启动成功

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(48)

集群各个服务状态正常

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(49)

8

功能验证

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

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(50)

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

[root@cdh1 ~]# kinit usera Password for fayson@FAYSON.COM: [root@cdh1 ~]# hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 5 5

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(51)

作业运行成功

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(52)

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(53)

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服务界面执行初始化。

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

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

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

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

kerberos 更改用户密码(0446-如何在Kerberos环境下修改启用HA的CDH集群HOSTNAME)(54)

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页