记一次cdh5.14中cm server节点的/var/lib目录被误删后的恢复

    笔者遇到个突发问题,线上某cdh集群中 (cdh5.14),cm server所在节点的/var/lib目录被人误删了,误删操作人员已经尝试了从cm agent节点cdh2中,拷贝/var/lib 目录到cm server节点cdh1的/var/lib目录下, 然后重启了cm server,也确实重启成功了,但是重启后cm页面有大量告警,有主机层面的,也有服务层面的,如cdh1主机运行状况不良,cdh1上的host monitor 启动失败等,尝试了若干次重启cm集群,都没有解决问题;同时hdfs,hive,hbase,zookeeper等服务重启后不稳定,cm有时显示这些服务是正常的,有时又显示有问题,但查看hdfs web ui却发现hdfs服务是正常的。

    笔者接到上报的问题后,首先仔细观察了cm中的告警信息和host页面,发现hosts页面有时显示有cdh1节点,有时又没有;同时原cdh1节点的角色如host monitor,hdfs namenode,有时会被显示是运行在cdh2节点上,至此问题清晰了,是cm检测hosts时发生了混乱,把cdh1节点和cdh2节点混淆了!

   原理剖析:cm5.14版本的配置文件默认是在/etc/cloudera-scm-agent 和 /etc/cloudera-scm-server中,没有被误删;同时hive底层的mysql和cm底层的mysql(有可能是同一个数据库实例也有可能不是同一个数据库实例)也没有被误删,所以恢复cm server的/var/lib目录下的文件后,可以成功重启cm server, 同时cm server 重启时仍可以通过配置文件/etc/cloudera-scm-server/db.properties找到mysql元数据库并加载元数据库中的信息,所以仍可以启动cm集群。查看配置文件/etc/cloudera-scm-agent/config.ini 的 lib_dir配置项,该配置项配置的目录是用来存储cm agent节点的状态信息的(该配置项说明:# Persistent state directory.  Directory to store CM agent state that persists across instances of the agent process and system reboots. Particularly, the agent's UUID is stored here.)在问题环境中,由于该配置项指定的是/var/lib/cloudera-scm-agent, cdh1节点该目录被误删除后是从另一个节点cdh2恢复过来的,恢复过来时后cdh1该目录下uuid文件存储的值就跟cdh2节点中该目录下uuid文件存储的值重复了。同时

cm在mysql元数据库的cm.hosts表中存储了cm集群的所有Hosts节点的一些元数据信息,包括HOST_IDENTIFIER字段存储的uuid。在问题环境中该cm.hosts表周中存储的chd1节点的uuid,与cdh1节点上/var/lib/cloudera-scm-agent/uuid文件中存储的uuid信息不一致(因为uuid文件是从cdh2节点拷贝过来的),所以导致cm检测cdh1节点和cdh2节点时发生了混淆,从而触发了各种警报。事实上,/var/lib/cloudera-scm-agent/cm_guid文件存储的是cm的id,跟cm.versions表中guid栏位的值一致,每个cm节点该文件的的内容都一样;/var/lib/cloudera-scm-agent/uuid存储的是该host全局唯一的id,跟cm.hosts表中HOST_IDENTIFIER栏位的值一致,每个节点的内容都不一样。查看uuid文件内容:more /var/lib/cloudera-scm-agent/uuid;查看mysql元数据中cm.hosts表存储的节点元数据信息语句:select HOST_ID,HOST_IDENTIFIER,NAME,IP_ADDRSS,RACK_ID,CLUSTER_ID from cm.hosts。

    问题解决方法:修改cdh1节点的/var/lib/cloudera-scm-agent/uuid 文件,更改成cm.hosts表里对应节点cdh1的那条记录的HOST_IDENTIFIER栏位的值,然后重启 cm-server跟agent,问题最终解决了,解决后cdh1节点正常了,该节点上的scm服务角色如host monitor, 以及该节点上的大数据服务角色如namenode, resource manager, zk, hbase master等,也都正常了。

    cm中相关目录使用总结:

cm相关的配置文件目录:

/etc/cloudera-scm-agent

/etc/cloudera-scm-server

cm相关的工作目录:

/var/lib/cloudera-scm-server

/var/lib/cloudera-scm-agent

/var/lib/cloudera-host-monitor

/var/lib/cloudera-service-monitor

cm相关的日志目录:

/var/log/cloudera-scm-server

/var/log/cloudera-scm-agent

/var/log/cloudera-scm-firehose

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明哥的IT随笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值