YARN学习总结-第十五节-YARN-RM-HA

YARN-RM-HA

在2.4之前,YARN存在单点故障,之后添加了高可用。

Overview of ResourceManager High Availability

图片来自互联网,链接:http://hadoop.apache.org/docs/r3.1.1/hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.html

RM-HA通过主备架构实现高可用。在任何时候只有一个为Active,一个或者多个Standby等待接管Active。可以通过CLI手动切换,也可以通过内置的failover-controller自动故障切换。

RMs内置一个基于Zookeeper的ActiveStandbyElector决定哪个RM应该成为Active。当Active故障后,其他RM自动选举Active接管任务。不需要额外运行一个ZKFC守护进程,因为嵌入在RMs的ActiveStandbyElector扮演了故障检测和领导选举,代替ZKFC守护进程。

客户端、AM、NM在故障切换时:

故障时,这些进程会轮询Active。默认的尝试逻辑通过org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider。你可以自己实现,只需要继承org.apache.hadoop.yarn.client.RMFailoverProxyProvider,然后修改yarn.client.failover-proxy-provider的值。

恢复之前的state

当开启ResourceManager Restart时,RM会被调起到激活状态,加载RM 内部state,从上个Active停止的地方继续操作。对于之前提交的应用,会重新生成一个attempt。目前有两种RMStateStore实现永久存储。FileSystemRMStateStore和ZKRMStateStore。ZKRMStateStore明确允许在任何时候一个RM可以写入数据,并且是推荐的存储方案。

当使用ZKRMStateStore的时候,不需要单独的fencing机制去处理潜在的集群脑裂问题,多个RM会自己设定Active role。

当使用ZKRMStateStore的时候,推荐不设置zookeeper.DiegetAuthenticationProvider.superDigest属性确保zookeeper管理员没有YARN application/user 的认证信息。

部署配置

hadoop.zk.address

yarn.resourcemanager.ha.enabled

yarn.resoucemanager.ha.rm-ids

yarn.resourcemanager.hostname.rm-id

yarn.resourcemanager.address.rm-id

yarn.resourcemanager.scheduler.address.rm-id

yarn.resourcemanager.resouce-tracker.address.rm-id

yarn.resourcemanager.admin.address.rm-id

yarn.resourcemanager.webapp.address.rm-id

yarn.resourcemanager.webapp.https.address.rm-id

yarn.resourcemanager.ha.id

yarn.resourcemanager.ha.automatic-failover.enabled

yarn.resourcemanager.ha.automatic-failover.embedded

yarn.resourcemanager.cluster-id

yarn.client.failover-proxy-provider

yarn.client.failover-max-attempts:FailoverProxyProvider失败尝试次数。

yarn.client.failover-sleep-base-ms:

yarn.client.failover-sleep-max-ms

yarn.client.failover-retries

yarn.client.failover-retries-on-socket-timeouts

简单配置

<property>
  <name>yarn.resourcemanager.ha.enabled</name>
  <value>true</value>
</property>
<property>
  <name>yarn.resourcemanager.cluster-id</name>
  <value>cluster1</value>
</property>
<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>yarn.resourcemanager.zk-address</name>
  <value>zk1:2181,zk2:2181,zk3:2181</value>
</property>

管理命令

$ yarn rmadmin -getServcieState rm1 active

$ yarn rmadmin -getServiceState rm2 standby

如果自动故障转移开启,你不能手动切换,不过可以指定-forcemanual,但是需要小心使用。

$ yarn rmadmin -transitionToStandby rm1

如果standby RM 启动并且运行后,所有web请求自动重定向所有web请求到active,除过About页面

Web Services

如果standby RM 启动并且运行后,所有web services请求自动重定向所有web请求到active。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值