YARN查看和切换ResourceManager的状态

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

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

<property>
  <name>yarn.resourcemanager.ha.enabled</name>
  <value>true</value>
</property>
<property>
  <name>yarn.resourcemanager.cluster-id</name>
  <value>cluster1</value>
</property>

<!-- 两个RM的ID -->
<property>
  <name>yarn.resourcemanager.ha.rm-ids</name>
  <value>rm1,rm2</value>
</property>
<property>
  <name>yarn.resourcemanager.hostname.rm1</name>
  <value>master1</value>
</property>
<property>
  <name>yarn.resourcemanager.hostname.rm2</name>
  <value>master2</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address.rm1</name>
  <value>master1:8088</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address.rm2</name>
  <value>master2:8088</value>
</property>
<property>
  <name>hadoop.zk.address</name>
  <value>zk1:2181,zk2:2181,zk3:2181</value>
</property>

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

#获取rm1的节点状态
yarn rmadmin -getServiceState rm1
>>active

#获取rm2的节点状态
yarn rmadmin -getServiceState rm2
>>standby

#获取所有RM节点的状态
yarn rmadmin -getAllServiceState
>>rm2               standby   
>>rm1               active 

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

#检查RM节点健康情况
yarn rmadmin -checkHealth <serviceId>

#使用$?获取上一个命令的返回状态,返回0表示健康,否则不健康
echo $?

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

#手动将 rm1 的状态切换到STANDBY
yarn rmadmin -transitionToStandby rm1

#手动将 rm2 的状态切换到ACTIVE
yarn rmadmin -transitionToActive rm2

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

#手动将 rm1 的状态切换到STANDBY
yarn rmadmin -transitionToStandby -forcemanual rm1

#手动将 rm2 的状态切换到ACTIVE
yarn rmadmin -transitionToActive -forcemanual rm2

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

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

例:

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值