温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

cdh5.14中cm server节点的/var/lib目录被误删后该怎么恢复

发布时间:2021-12-30 10:44:53 来源:亿速云 阅读:114 作者:柒染 栏目:大数据

今天就跟大家聊聊有关cdh5.14中cm server节点的/var/lib目录被误删后该怎么恢复,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

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

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

   原理剖析: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, cdh2节点该目录被误删除后是从另一个节点cdh3恢复过来的,恢复过来时后cdh2该目录下uuid文件存储的值就跟cdh3节点中该目录下uuid文件存储的值重复了。同时

cm在mysql元数据库的cm.hosts表中存储了cm集群的所有Hosts节点的一些元数据信息,包括HOST_IDENTIFIER字段存储的uuid。在问题环境中该cm.hosts表周中存储的chd1节点的uuid,与cdh2节点上/var/lib/cloudera-scm-agent/uuid文件中存储的uuid信息不一致(因为uuid文件是从cdh3节点拷贝过来的),所以导致cm检测cdh2节点和cdh3节点时发生了混淆,从而触发了各种警报。事实上,/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。

    问题解决方法:修改cdh2节点的/var/lib/cloudera-scm-agent/uuid 文件,更改成cm.hosts表里对应节点cdh2的那条记录的HOST_IDENTIFIER栏位的值,然后重启 cm-server跟agent,问题最终解决了,解决后cdh2节点正常了,该节点上的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

看完上述内容,你们对cdh5.14中cm server节点的/var/lib目录被误删后该怎么恢复有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI