CM-server故障挂掉问题排查和解决
一、问题描述:
1、cloudera-manager管理界面无法登陆,无法操作集群由cloudera-manager来进行管理
2、查看azkaban时却是正常的,任务也正常调度和执行
3、查看生成的结果数据是正常的
说明程序执行正常,hdfs,hive等hadoop内部没有故障,整个集群正常在运行,只是管理和监控集群的CM故障了。
二、针对问题进一步排查:
1、通过命令service cloudera-scm-server status
查看主节点scm是否正常运行(不同集群程序安装位置不一样,执行命令位置可能不一样)
2、通过命令/data01/opt/cm/etc/init.d/cloudera-scm-agent status
查看每一台节点的agent是否执行正常(不同集群程序安装位置不一样,执行命令位置可能不一样)
三、通过问题的排除,解决问题:
1、通过进一步问题排除:发现scm主服务正在运行,agent也正常运行
2、因为cm服务正在运行,那么执行正常关闭命令:service cloudera-scm-server stop
进行正常关闭(虽然scm已经故障无法登陆,为了防止暴力启动cm导致程序错乱,而完全无法启动CM,所以进行正常步骤的关闭和启动)
3、因为agent也正常运行:每一台都执行:/data01/opt/cm/etc/init.d/cloudera-scm-agent stop进行正常的停止
4、全部完成之后,根据从主到从关闭,从从到主启动的原则进行重新启动
5、每一台节点执行:/data01/opt/cm/etc/init.d/cloudera-scm-agent start,正常启动
6、主节点执行:service cloudera-scm-server start
提示:Starting cloudera-scm-server (via systemctl): [ OK ],正常启动
并查看日志:cd /var/log/cloudera-scm-server/
tail -f cloudera-scm-server.log
最后:com.cloudera.server.cmf.components.ScmActive: ScmActive completed successfully表示启动成功
7、重新登录CM管理界面,成功打开并且成功登录,原来的集群全部正常运行,问题解决
四、当通过命令service cloudera-scm-server status查看状态发现已经故障时的问题解决:
1、当scm主服务故障时,没法通过上述的方法恢复登录界面,使用service cloudera-scm-server start时也无法启动,日志报错
2、先每一台/data01/opt/cm/etc/init.d/cloudera-scm-agent start正常启动agent(agent通常是不会故障的)
3、用service cloudera-scm-server start启动,启动失败,并打开启动日志tail -f cloudera-scm-server.log
4、发现错误IOException: directory ‘/var/lib/cloudera-scm-server/search/lucene.en…1621221167496’ exists and is a directory, but cannot be listed: list() returned null
初始化失败,已经存在
5、把lucene.en…1621221167496这个文件夹移除,或者删除。让其可以从新初始化
6、然后重新启动service cloudera-scm-server start
最后问题解决。