文档编写目的
随着集群规模的不断扩大,在对集群进行调整优化时。时常会考虑对集群的角色进行优化调整,这就会涉及到服务角色的迁移。本篇文章主要介绍如何将Zookeeper服务的单个实例从一个节点迁移到其他节点。
- 测试环境:
1.Redhat7.6
2.采用root用户操作
3.CM和CDH版本为5.16.2
Zookeeper角色迁移计划
1.集群Zookeeper服务角色实例分配情况
2.由于角色规划不合理,需要将cdp1.hadoop.com节点的Zookeeper实例实例迁移到cdp4.hadoop.com节点上
服务 | 源地址 | 目标地址 |
---|---|---|
Zookeeper | cdp1.hadoop.com | cdp4.hadoop.com |
Zookeeper角色迁移
1.通过CM查看集群ZooKeeper中Server数据目录的位置
2.停止cdp1上的ZK server服务
3.在cdp4节点创建一个新的目录,并把cdp1节点的目录的数据迁移到cdp4节点新目录
代码语言:javascript复制[root@cdp4 ~]# mkdir /data/ZK
[root@cdp4 ~]#
将cdp1节点的/data/ZK迁移到cdp4的/data/ZK
注意和原目录比对一下目录权限是否有变化
4.在CM界面删除cdp1上的ZK server
5.在cdp4上添加一个ZK server角色
启动cdp4 上的ZK server
ZooKeeper启动成功后,将cdp2和cdp3两个节点的ZK服务重启。
注意:重启cdh02和cdh03节点的ZK服务时一个个重启,确保ZK服务正常后,再操作下一个。
实例运行正常,leader选举正常
最后部署客户端配置并重启相关服务
集群服务运行正常
总结
1.Zookeeper服务角色迁移,其实就是将待迁移节点的ZK服务停止并删除并将待迁移节点的数据目录打包拷贝至新节点上,同时在新节点上添加一个ZK服务即可
2.在迁移ZK服务的过程中,需要一个节点一个节点的操作,操作完一个节点后,需要重启滚动重启ZK服务,确保服务的选举没有问题后再进行操作
3.移动ZooKeeper的数据目录到新的节点的目录时,要注意目录的用户属组和权限正确
4.ZK服务实例的迁移会涉及到HDFS、HBase等服务的重启,同时也需要考虑到应用层面的变更(如:Kafka、HBase等服务相关应用)