温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
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服务界面执行初始化。
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
领取专属 10元无门槛券
私享最新 技术干货