9.1将原CM节点数据迁移至新节点
9.1.1备份原CM节点数据
- 主要备份CM的监控数据和管理信息,数据目录包括:
/var/lib/cloudera-host-monitor
/var/lib/cloudera-service-monitor
/var/lib/cloudera-scm-server
/var/lib/cloudera-scm-eventserver
/var/lib/cloudera-scm-headlamp
### 注意:将备份命令压缩传输,防止目录的属主和权限变化
9.1.2 修改CM的数据库配置信息
- 修改新CM的数据库配置文件/etc/cloudera-scm-server/db.properties,配置文件内容
[root@ip-172-31-18-97 cloudera-scm-server]# sudo vim db.properties
# Copyright (c) 2012 Cloudera, Inc. All rights reserved.
#
# This file describes the database connection.
#
# The database type
# Currently 'mysql', 'postgresql' and 'oracle' are valid databases.
com.cloudera.cmf.db.type=mysql
# The database host
# If a non standard port is needed, use 'hostname:port'
com.cloudera.cmf.db.host=localhost
# The database name
com.cloudera.cmf.db.name=cm
# The database user
com.cloudera.cmf.db.user=cm
# The database user's password
com.cloudera.cmf.db.password=123456
# The db setup type
# By default, it is set to INIT
# If scm-server uses Embedded DB then it is set to EMBEDDED
# If scm-server uses External DB then it is set to EXTERNAL
com.cloudera.cmf.db.setupType=EXTERNAL
-
根据自己的配置信息对标红部分进行修改
9.1.3 CM备份数据导入新节点
-
将原CM上备份的数据拷贝到新CM节点上
- 通过如下命令将备份数据还原至对应目录
[ec2-user@ip-172-31-18-97 cmbak]$ sudo tar -zxvf cloudera-host-monitor.tar.gz -C /var/lib/
[ec2-user@ip-172-31-18-97 cmbak]$ sudo tar -zxvf cloudera-service-monitor.tar.gz -C /var/lib/
[ec2-user@ip-172-31-18-97 cmbak]$ sudo tar -zxvf cloudera-scm-server.tar.gz -C /var/lib/
[ec2-user@ip-172-31-18-97 cmbak]$ sudo tar -zxvf cloudera-scm-eventserver.tar.gz -C /var/lib/
[ec2-user@ip-172-31-18-97 cmbak]$ sudo tar -zxvf cloudera-scm-headlamp.tar.gz -C /var/lib/
9.1.4 更新集群所有节点的CM Server指向
-
修改集群所有节点上/etc/cloudera-scm-agent/config.ini文件中server_host值为新CM节点的hostname
9.1.5 将原CM节点的CM Service角色迁移至新节点
- 启动新CM节点的cloudera-scm-server和cloudera-scm-agent服务
[ec2-user@ip-172-31-18-97 253back]# sudo systemctl start cloudera-scm-server
[ec2-user@ip-172-31-18-97 253back]# sudo systemctl start cloudera-scm-agent
### 注意:在新CM节点上启动cloudera-scm-agent服务后,会将CM节点的信息添加到cm库的HOSTS表中,查看新CM节点对应的HOSTS_ID
-
登录mysql数据库将,查看cm.HOSTS表中的Cloudera Manager的host信息
-
未迁移前可以通过CM管理界面看到新CM节点是没有任何角色
- 通过如下命令,将旧CM的角色迁移至新CM节点上
update ROLES set HOST_ID=11 where NAME like 'mgmt%';
-
执行操作后,原CM节点的角色被迁移至新CM节点
- 通过CM管理界面将原CM节点从集群删除
- 将原CM节点删除
- 由于集群配置了Kerberos,则需要更新Kerberos的server,如果Kerberos未迁移则不需要考虑此步
- 通过CM管理界面启动Cloudera Management Service
- 由于做了数据库迁移,所以需要修改hive/hue/oozie对应的数据库配置
- 未做数据库迁移可跳过此步
- 进行以上修改后重启集群
9.2 迁移后集群服务验证
- 原CM的运行界面,历史监控数据
- 登录CM管理平台,查看集群状态正常
- 迁移后可以查看正常查看集群的历史监控数据
-
Hue访问及操作正常
-
HDFS访问及操作正常
-
HBase通过hue和shell正常操作
-
9.3 常见问题解决
9.3.1 常见问题一
-
由于cloudera-scm-agent服务于supervisord之间通信异常导致问题。
- 解决方法:
- 将告警节点上的supervisord进程杀死,然后重启agent服务
[root@ip-172-31-28-37 cloudera-scm-agent]# ps -ef |grep supervisord
root 26910 1 0 07:02 ? 00:00:00 /usr/lib64/cmf/agent/build/env/bin/python /usr/lib64/cmf/agent/build/env/bin/supervisord
root 28806 28748 0 07:03 pts/0 00:00:00 grep --color=auto supervisord
[root@ip-172-31-28-37 cloudera-scm-agent]# kill -9 26910
[root@ip-172-31-28-37 cloudera-scm-agent]# systemctl restart cloudera-scm-agent
9.3.2 常见问题二
-
由于在CM迁移时,未迁移/opt/cloudera/csd目录导致问题。
- 解决方法:
- 将原CM节点上/opt/cloudera/csd目录拷贝至新CM节点对应的目录
- 重启cloudera-scm-server服务
[ec2-user@ip-172-31-18-97 253back]# sudo systemctl start cloudera-scm-server
9.3.3 常见问题三
- Service Monitor启动失败导致异常信息
- 由于CM迁移时,/var/lib/cloudera-service-monitor目录的文件缺失导致
- 解决方法:
- 将/var/lib/cloudera-service-monitor目录的数据重新覆盖
9.3.4 常见问题四
- 在集群迁移完成后,集群启动后做了高可用服务的NameNode和ResourceManager服务均不能正常显示主备节点,HDFS的汇总信息无法正常显示
- 由于集群配置了kerberos,新CM节点未生成keytab导致
- 解决方法:
- 将CM节点的所有服务停掉,然后生成该主机的keytab
9.4 总结
- 如何在不停止集群服务的情况下进行CM迁移,需要满足如下条件:
- 新CM节点的hostname与IP地址与旧CM节点一致;
- 如果需要迁移数据库,则新数据库的hostname与IP地址与原数据库一致,且需要将原数据库的数据导入到新库中;
- 如果需要迁移Kerberos MIT KDC,则新MIT KDC所在节点与旧MIT KDC节点的hostname与IP地址一致,且需要将旧MIT KDC数据库数据导入新MIT KDC数据库中;
- 注意:如果只做第1步操作,则不需要重启hadoop集群相关服务,并且不会影响hadoop集群现有作业;如果进行2、3步操作会对集群作业造成短暂影响,但不需要重启hadoop集群相关服务;
大数据视频推荐:
腾讯课堂
CSDN
大数据语音推荐:
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通