9.迁移CM和数据库-2

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
大数据语音推荐:
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

你可能感兴趣的:(9.迁移CM和数据库-2)