重启yarn导致僵死资源不可用问题

今日在做节点可靠性测试的时候,错误重启了yarn整个服务,其hdfs等他组件正常,yarn过会自动僵死,导致整个平台资源调度问题,恢复步骤如下:

1.查看日志tail -f yarn-resourcemanger-192.168.1.233.log(不清楚你的日志在哪可以find / -name yarn)

2.登陆装有yarn的机器,查看rm1,rm2 的状态。我的rm1,rm2,都是standby,(rm是resourceManger,HA)

$ yarn rmadmin -getServiceState rm1
standby
$ yarn rmadmin -getServiceState rm2
standby

(手动的切换准备命令了yarn rmadmin -transitionToStandby rm1)

3.以上两个命令已经可以发现主rm没有起来,但重启后,依然会僵死。清空rm日志,重新启动rm后,分析日志会发现如下错误:

Caused by: org.apache.hadoop.metrics2.MetricsException: Hadoop:service=ResourceManager,name=RMNMInfo already exists!

Caused by: java.lang.IllegalArgumentException: No object name specified
 at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:949)
 ... 21 more

 Metrics source ClusterMetrics already exists!

4.这时可以考虑是有个application加载不起来。

可以修改yarn-site.xml的yarn.resourcemanager.recovery.enabled = false。

若集群开启了Recovery功能,则ResourceManager重启过程中:

  • Hive作业正常运行至结束
  • YARN UI的作业信息一直保留存在

这里我们要改为false,后重启yarn。

5.等待yarn空闲时,连接zookeeper(在zk的bin目录下运行./zkCli.sh -server 127.0.0.1:2181)

登陆后查看该目录ls /rmstore/ZKRMStateRoot/RMAppRoot,

不为空则使用该命令rmr /rmstore/ZKRMStateRoot/RMAppRoot/* 删除目录文件

确定为空时,把yarn-site.xml的yarn.resourcemanager.recovery.enabled改回ture

6.重启yarn。

原文地址:https://www.cnblogs.com/xiaodong520/p/10868568.html