一、背景
cdh在各个节点有server(就是manage)和agent服务,但是server节点所在的lunix服务器宕机了,同时cdh所用的mysql也在这台服务器上,并且无法启动;系统运维部门的有定时对这台服务器做备份;
1、根据备份启动服务器依然无法正常启动;但是能够系统运维部门通过一些方式获取到这个服务器的文件(这点很重要);
2、幸亏我们有对cm所用使用的mysql数据库做主从,并且这段时间也没有跑什么离线任务(这样就不用担心hive的元数据问题了,hive的元数据是存储在mysql里面的)
3、该服务器的服务cdh的server、mysql(幸亏hive、hbase、yarn的master节点不在这台服务器上,不幸中万幸);
二、已有的
1、cdh所用的mysql服务的数据
2、原服务器所有的文件
3、系统运维部门提供的新的一台服务器,(注意:要服务器的时候根目录空间要大一些)
三、各项版本号
cdh:5.16.2
cm:6.1.1
四、恢复操作
4.1、服务器基本环境
这个装过cdh的基本上都知道,详细操作就默认大家都会了,只是简单写一下具体的步骤
1、拿到一台原始的服务器,修改内网ip
2、创建新的部门用户,并修改配置文件给部门用户管理员权限
3、修改主机名
4、ip与主机名之间的映射(所有主机操作),直接参考其他节点的服务器就行
5、禁用ipv6(所有服务器操作)
6、关闭防火墙和安全子系统
7、禁用透明大页面压缩
8、优化交换分区
9、配置免密通信(可不做,这个不做确实行,)
10、安装java,注意(注意java的安装目录)
11、配置ntp时间同步
12、安装 MySQL JDBC 驱动(这个是要做的)
上述参考着集群搭建方式做就行(网上一大堆,)
4.2、安装mysql并恢复数据
针对cdh所使用的mysql是有主从的,重新装一个mysql,把数据迁过来就行了,这个操作很简单,不会的话自行百度吧;
装完mysql,自己使用scm(cm的用户)用户在服务器上使用命令行登录验证一下
4.3、安装恢复cdh的server和agent
1、安装cdh相关的apm包,我这里是有rpm包备份的就直接贴图了

通过rpm命令进行安装
只需安装cloudera-manager-agent-6.1.1-853290.el7.x86_64.rpm、cloudera-manager-daemons-6.1.1-853290.el7.x86_64.rpm、 cloudera-manager-server-6.1.1-853290.el7.x86_64.rpm这三个包就行,
cloudera-manager-server-db-2-6.1.1-853290.el7.x86_64.rpm包就不用安装了,因为 我这里使用的是mysql数据库,cdh推荐使用的是mongo吧好像,这个忘记了,
2、修改cdh的agent和server配置
我这里有以前的备份文件,我这里就直接用备份的配置文件将新安装的服务下的配置文件给覆盖了,在覆盖的时候要注意配置文件所属的用户和用户组
简单讲一下这个配置文件(我这边是直接通过rpm安装的,所有走的目录是默认目录)吧
/etc/cloudera-scm-server目录下的db.properties文件,是配置cdh的数据库配置,验证mysql登录的时候就是依照这个配置文件下的内容
/etc/cloudera-scm-agent目录下的config.ini文件,配置agent对应的server节点
3、相关数据的迁移
将备份数据中/var/lib目录下关于cdh的文件迁移到新的服务器对应的目录下,注意文件所属用户和用户组
迁移后,新服务器/var/lib目录下、命令参考:
-- 添加用户组
groupadd zookeeper
-- 对应用户组下添加用户
useradd -g zookeeper zookeeper
-- 修改文件夹及文件夹内文件的用户和用户组
chown -R zookeeper:zookeeper zookeeper
需要迁移的文件如图所示

其实其中关键的是cloudera-scm-agent和cloudera-scm-server目录,其他迁移与否感觉不重要,除了hive(因为担心hive元数据的问题,这点就很恶心),安全起见我就全迁移了一遍;
根据查阅的文档(参阅的文档:),还应该有 cloudera-host-monitor和cloudera-service-monitor,但是在备份的文件里面死活没有找到,最后我考虑了一下其他节点是不是有,又在其他节点找了一遍,还真就找到了,
五、启动服务
1、监控启动日志
找到cloudera-scm-server.log这个文件,如果不在/var/log/cloudera-scm-server/目录下,可以直接通过命令行寻找,find / -name "cloudera-scm-server.log"
然后监控这个日志
2、启动cloudera-scm-server
service cloudera-scm-server start
3、启动cloudera-scm-agent
service cloudera-scm-agent start
4、进入cm的管理页面发现parcel包异常
原因是没有迁移pacel包
将备份的parcel包迁移至对应目录下,然后重启cloudera-scm-agent即可
六、总结
这次能够恢复成功的主要原因是:cdh所用的mysql数据有备份,以及对服务器数据有备份,
想写一下我这边能够正常恢复的原理,还是算了,不想写;
如果是mysql数据无法恢复,那hive的元数据就没了,那基本上就废了,这就需要考虑hive元数据的恢复问题
9781

被折叠的 条评论
为什么被折叠?



