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

举报
数据社 发表于 2022/09/25 04:30:04 2022/09/25
【摘要】     笔者遇到个突发问题,线上某cdh集群中 (cdh5.14),cm server所在节点的/var/lib目录被人误删了,误删操作人员已经尝试了从cm agent节点cdh2中,拷贝/var/lib 目录到cm server节点cdh1的/var/lib目录下, 然后重启了cm ser...

    笔者遇到个突发问题,线上某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

文章来源: dataclub.blog.csdn.net,作者:数据社,版权归原作者所有,如需转载,请联系作者。

原文链接:dataclub.blog.csdn.net/article/details/111503504

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。