现象:
通过 Ambari 安装了 Yarn HA,一段时间后,Ambari报连接不上其中一个服务器的 ResourceManager 警告。
去该服务器上看,没有相关的 ResourceManager 进程。在Ambari界面重启,在停止阶段失败。直接启动也失败。
在该服务器通过命令 yarn-daemon.sh start resourcemanager 启动后,警告消失。
但通过这种方法启动的 ResourceManager 跟在Ambari界面启动的不一样,导致Ambari接管有些问题:Yarn需要重启时,界面重启失败,导致界面一致有重启标识。
一直无法解决!
解决:
最近机房要下电,下电前要把 Ambari 及其管理的组件服务都先停掉。不想一个一个地手动去点停服务(另外也需要考虑停止服务的顺序),网上找停掉所有服务的快速方法。如下:
curl -u admin:admin -H "X-Requested-By: ambari" -X PUT -d '{"RequestInfo":{"context":"_PARSE_.STOP.ALL_SERVICES","operation_level":{"level":"CLUSTER","cluster_name":"集群名"}},"Body":{"ServiceInfo":{"state":"INSTALLED"}}}' http://xxx:8080/api/v1/clusters/集群名/services
全部停止后,使用下边命令快速启动:
curl -u admin:admin -H "X-Requested-By: ambari" -X PUT -d '{"RequestInfo":{"context":"_PARSE_.START.ALL_SERVICES","operation_level":{"level":"CLUSTER","cluster_name":"集群名"}},"Body":{"ServiceInfo":{"state":"STARTED"}}}' http://xxx:8080/api/v1/clusters/集群名/services
启动时发现原来有问题的 ResouceManager 起来后马上又停掉。想着应该是通过命令 yarn-daemon.sh start resourcemanager 启动的 resoucemanager 影响了 Ambari 启动 resourcemanager,所以到服务器执行命令
yarn-daemon.sh stop resourcemanager 停掉 ResourceManager 后再到 Ambari 执行启动 ResourceManager。问题解决!