从零搭建生产Hadoop集群(九)——Cloudera Manager Server备份与迁移
一、概述
目前Cloudera Manager Server没有提供高可用方案,也就是如果服务器挂了之后,就没法获取集群的运行状态,也失去了对集群的控制。因此,CM Server的重要性不言而喻。不过,好在CM Server的服务器或进程异常并不会对集群的正常运行造成影响。那我们有没有办法在没有高可用的情况下,迅速地在其他服务器启用Server进程,本文将对这个问题进行阐述。
二、CM Server迁移流程
1. 旧CM Server的配置定时备份
这个操作应该使用脚本之类的工具做成定时任务,定期从数据库中将配置备份到其他服务器上。若使用的是默认的嵌入式PG库,可使用以下命令备份:
pg_dump -h [cm_server] -p 7432 -U scm > /tmp/scm_server_db_backup.sql
其密码信息可从/etc/cloudera-scm-server/db.properties获取。并将dump出的备份文件定期同步到备份CM Server上。
2. 备份CM Server安装CM Agent进程
需安装与原CM Server一致的软件版本。前提是已经配置好了CM的本地离线或远程yum源,本地离线yum源的配置可参考本系列的第一篇文章。
yum install cloudera-manager-agent
3.备份CM Server安装CM Server、db进程
yum install cloudera-manager-daemons cloudera-manager-server
yum install cloudera-manager-server-db-2
4.备份数据导入备份CM Server的配置PG库
启动PG库进程:
service cloudera-scm-server-db start
数据导入到PG库:
psql -h [cm_server] -p 7432 -U scm < scm_server_db_backup.sql
5.集群所有主机的CM Agent修改Server指向并重启
在每台主机上的 /etc/cloudera-scm-agent/config.ini 中,将server_host 属性更新为新的CM主机名或IP并重启 Agent进程。
service cloudera-scm-agent start
6.迁移监控历史数据(如果不需历史数据请忽略)
Cloudera Management Service的相关历史监控数据默认放置于/var/lib,主要包括cloudera-host-monitor、cloudera-scm-eventserver、cloudera-service-monitor目录,将其从旧的CM Server复制到新的服务器上。这样进程启动后就可以看到历史的监控数据,若不需要这些历史数据,也可以不复制,则监控数据从启动时开始记录。
7.启动CM Server进程
启动cloudera-scm-server进程:
service cloudera-scm-server start
正常启动后,Hadoop相关组件进程一般不会受到影响。不过需要注意的是,若原来Cloudera Management Service是部署在跟CM Server同个服务器上,则需现将其实例删除再添加新的服务实例,并根据实际修改相关配置,否则其服务状态可能会处于未知状态。