【第二篇 2/2】CDP集群原有3台主机名为namenode0[1-3].rundba.com,现更改3台主机名(FQDN)为nn0[1-3].rundba.net,使用了kerberos加密,启用了HDFS HA。
![](https://oss-emcsprod-public.modb.pro/wechatSpider/modb_20211216_b6f91182-5e0b-11ec-b13e-38f9d3cd240d.png)
9. 数据库设置
更新数据库所在主机上的每个群集角色的数据库主机名属性。Cloudera 管理服务角色(报告管理器、活动监视器、导航器审计和元数据服务器)和集群服务(如 Hue、Hive 等)都需要这样做。
CM -> 配置 -> 数据库设置
搜索host,更改所有数据库主机名为新数据库主机名nn01,点击“保存更改”。
需要更改主机名参考:
Hive Metastore 数据库主机;
Hue 数据库主机名称;
Reports Manager 数据库主机;
Oozie 服务器数据库主机;
Ranger Database Host。
![](https://oss-emcsprod-public.modb.pro/wechatSpider/modb_20211216_b6f91182-5e0b-11ec-b13e-38f9d3cd240d.png)
10. 启动CMS
10.1 启动CMS
CM -> Cloudera Management Service -> 启动,确保服务启动成功。
启动,状态:已完成,点击关闭。
10.2 CMS启动可能遇到的问题
1) 问题1:Reports Manager启动失败
如果Reports manager启动不成功,可能原因是章节9(数据库设置)中“Reports Manager 数据库主机”主机名没有更改,检查RM数据库主机名。
2) 问题2:KDC Server Connection is not available
CMS服务运行提示“不良 :
KDC Server Connection is not available. Unable to login.”
解决方法:
验证KDC是否正常(kinit admin/admin@RUNDBA.NET#输入密码,登录正常);
CM主页停止CMS(Cloudera Management Service);
CM主机重启cloudera-scm-server(systemctl restart cloudera-scm-server);
CM主页再次启动CMS(Cloudera Management Service),恢复正常。
![](https://oss-emcsprod-public.modb.pro/wechatSpider/modb_20211216_b6f91182-5e0b-11ec-b13e-38f9d3cd240d.png)
11. 重新配置zookeeper故障转移控制器(启用HDFS HA时需要操作)
如果重命名的主机之一的 NameNode 配置了高可用性和自动故障转移,请重新配置 ZooKeeper 故障转移控制器 znodes 以反映新的主机名。
确认是否启用HA:
CM -> HDFS -> 配置 -> “启用自动故障转移”复选框是否有对勾,有对勾则启用NameNode高可用。
11.1 启动 ZooKeeper 服务器
CM -> ZooKeeper -> 启动(ZooKeeper项操作),确保服务启动正常。
警告:所有其他服务,最重要的是 HDFS,以及 HDFS 中的 ZooKeeper 故障转移控制器 (FC) 角色,不应运行。
11.2 删除HDFS Z序节点
在具有ZooKeeper Server角色的任意主机上,在操作系统提示符下执行zookeeper-client。
如果集群配置了 Kerberos 安全,请按如下方式配置 ZooKeeper 授权:
转到 HDFS 服务 -> 单击实例选项卡 -> 单击任意“故障转移控制器”(Failover Controller)角色
单击"进程"选项卡 -> 在程序的Configuration Files 列中hdfs/hdfs.sh ["zkfc"],展开Show。
检查core-site.xml显示的文件列表并确定ha.zookeeper.auth属性的值,类似于:digest:hdfs-fcs:TEbW2bgoODa96rO3ZTn7ND5fSOGx0h。
“digest:hdfs-fcs:”后面的部分是密码(在示例中是 TEbW2bgoODa96rO3ZTn7ND5fSOGx0h)
addauth使用密码运行命令:addauth digest hdfs-fcs:TEbW2bgoODa96rO3ZTn7ND5fSOGx0h
登录任意ZK服务所在节点,在操作系统提示符下执行zookeeper-client命令,在ZK命令行下执行:
[root@nn02 ~]# zookeeper-client
Connecting to localhost:2181
Welcome to ZooKeeper!
JLine support is enabled
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] addauth digest hdfs-fcs:sUPgvMvcAZB0DCWLe1TMDKj0WIhVVF #addauth使用密码运行
[zk: localhost:2181(CONNECTED) 1] ls /hadoop-ha #验证 HA znode 是否存在
[nameservice1]
[zk: localhost:2181(CONNECTED) 2] rmr /hadoop-ha/nameservice1 #删除HDFS Z序节点
The command 'rmr' has been deprecated. Please use 'deleteall' instead.
[zk: localhost:2181(CONNECTED) 3] deleteall /hadoop-ha/nameservice1 #删除HDFS Z序节点
Node does not exist: /hadoop-ha/nameservice1
[zk: localhost:2181(CONNECTED) 4] ls /hadoop-ha
[]
[zk: localhost:2181(CONNECTED) 5] quit
如果你没有在高可用性配置中运行的JobTracker,删除HA Z序节点:rmr /hadoop-ha。
11.3 初始化自动故障转移znode
CM主页 -> HDFS 服务 -> 单击实例选项卡 -> 点击任意"Failover Controller"进入
操作 -> 初始化自动故障转移znode。
状态为已完成,点击关闭。
![](https://oss-emcsprod-public.modb.pro/wechatSpider/modb_20211216_b6f91182-5e0b-11ec-b13e-38f9d3cd240d.png)
12. 更新 Hive 元存储(启用HDFS HA时需要操作)
12.1 备份 Hive Metastore 数据库
备份数据库
[root@nn01 ~]# mysqldump --databases hive --port=3306 -uroot -p'123456' --events -l -F -e -R > bak_20211208/hive_20211208.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
查看备份
[root@nn01 ~]# head bak_20211208/hive_20211208.sql
-- MySQL dump 10.13 Distrib 5.7.24, for Linux (x86_64)
--
-- Host: localhost Database: hive
-- ------------------------------------------------------
-- Server version 5.7.24
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
12.2 更新Hive Metastore NameNodes
CM -> Hive -> 操作 -> “更新Hive Metastore NameNodes”
在弹出界面并再次点击"更新Hive Metastore NameNodes"确认
状态为已完成,点击关闭。
![](https://oss-emcsprod-public.modb.pro/wechatSpider/modb_20211216_b6f91182-5e0b-11ec-b13e-38f9d3cd240d.png)
13. 启动所有集群服务
CM -> 集群名称 -> 启动。
状态为已完成,点击关闭。
确保所有组件启动正常。
![](https://oss-emcsprod-public.modb.pro/wechatSpider/modb_20211216_b6f91182-5e0b-11ec-b13e-38f9d3cd240d.png)
14. 重新部署客户端配置
点击任意“过期配置,重新部署客户端配置”,重新部署客户端配置。
点击“部署客户端配置”
状态为已完成,点击关闭。
查看所有服务运行正常。
![](https://oss-emcsprod-public.modb.pro/wechatSpider/modb_20211216_b6f91182-5e0b-11ec-b13e-38f9d3cd240d.png)
15. 总结
更改主机名(FQDN),使用kerberos环境下,需要重新配置kerberos,而后进行数据库设置、重新配置zookeeper故障转移控制器、更新 Hive 元存储、启动所有集群服务、重新部署客户端配置等。
![](https://oss-emcsprod-public.modb.pro/wechatSpider/modb_20211216_b6f91182-5e0b-11ec-b13e-38f9d3cd240d.png)
16. Ref.
https://docs.cloudera.com/cdp-private-cloud-base/7.1.6/managing-clusters/topics/cm-changing-hostnames.html
https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/cm_ag_change_hostnames.html
https://docs.cloudera.com/documentation/enterprise/5-3-x/topics/cm_ag_change_hostnames.html
旨在交流,不足之处,还望抛砖。
作者:王坤,微信公众号:rundba,欢迎转载,转载请注明出处。
如需公众号转发,请联系wx: landnow。
![](https://oss-emcsprod-public.modb.pro/wechatSpider/modb_20211216_bb0d1bba-5e0b-11ec-b13e-38f9d3cd240d.png)
往期推荐