当前位置:   article > 正文

YARN查看和切换ResourceManager的状态_查看resourcemanager状态

查看resourcemanager状态

YARN开启了HA之后,我们想要知道两个ResourceManager中哪台是ACTIVE,哪台是STANDBY状态,可以通过下面的方式来获取或切换它们的状态。

YARN的HA机制是配置在hadoop的etc目录下的yarn-site.xml文件中,如下示例代码:

  1. <property>
  2. <name>yarn.resourcemanager.ha.enabled</name>
  3. <value>true</value>
  4. </property>
  5. <property>
  6. <name>yarn.resourcemanager.cluster-id</name>
  7. <value>cluster1</value>
  8. </property>
  9. <!-- 两个RM的ID -->
  10. <property>
  11. <name>yarn.resourcemanager.ha.rm-ids</name>
  12. <value>rm1,rm2</value>
  13. </property>
  14. <property>
  15. <name>yarn.resourcemanager.hostname.rm1</name>
  16. <value>master1</value>
  17. </property>
  18. <property>
  19. <name>yarn.resourcemanager.hostname.rm2</name>
  20. <value>master2</value>
  21. </property>
  22. <property>
  23. <name>yarn.resourcemanager.webapp.address.rm1</name>
  24. <value>master1:8088</value>
  25. </property>
  26. <property>
  27. <name>yarn.resourcemanager.webapp.address.rm2</name>
  28. <value>master2:8088</value>
  29. </property>
  30. <property>
  31. <name>hadoop.zk.address</name>
  32. <value>zk1:2181,zk2:2181,zk3:2181</value>
  33. </property>

从XML配置中可以看到两个RM的ID,我们可以使用下面的命令根据该ID获取它们的状态:

  1. #获取rm1的节点状态
  2. yarn rmadmin -getServiceState rm1
  3. >>active
  4. #获取rm2的节点状态
  5. yarn rmadmin -getServiceState rm2
  6. >>standby
  7. #获取所有RM节点的状态
  8. yarn rmadmin -getAllServiceState
  9. >>rm2 standby
  10. >>rm1 active

使用下面的命令可以检查RM的健康情况,当出现问题时会返回0以外的状态码:

  1. #检查RM节点健康情况
  2. yarn rmadmin -checkHealth <serviceId>
  3. #使用$?获取上一个命令的返回状态,返回0表示健康,否则不健康
  4. echo $?

 同样,我们也可以手动的切换这两个RM的状态:

  1. #手动将 rm1 的状态切换到STANDBY
  2. yarn rmadmin -transitionToStandby rm1
  3. #手动将 rm2 的状态切换到ACTIVE
  4. yarn rmadmin -transitionToActive rm2

当YARN的HA配置中开启了自动故障转移(yarn.resourcemanager.ha.automatic-failover.enabled)时,上面的命令不可用,此时可以加上-forcemanual 参数令其可用(谨慎使用此参数)。

  1. #手动将 rm1 的状态切换到STANDBY
  2. yarn rmadmin -transitionToStandby -forcemanual rm1
  3. #手动将 rm2 的状态切换到ACTIVE
  4. yarn rmadmin -transitionToActive -forcemanual rm2

当手动的切换到ACTIVE状态时,YARN会检查当前是否有ACTIVE的RM,这样做是为了避免出现脑裂的情况。如果想要强制切换ACTIVE状态时不检查当前是否有存活的RM可以使用-forceactive 参数(谨慎使用此参数)。

  1. #手动将 rm2 的状态切换到ACTIVE,且不检查RM状态
  2. yarn rmadmin -transitionToActive -forceactive -forcemanual rm2

例:

 

希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/741631
推荐阅读
相关标签
  

闽ICP备14008679号