ResourceManager高可用性---官网谷歌翻译

ResourceManager高可用性

介绍

本指南概述了YARN ResourceManager的高可用性,并详细介绍了如何配置和使用此功能。ResourceManager(RM)负责跟踪群集中的资源,并调度应用程序(例如MapReduce作业)。在Hadoop 2.4之前,ResourceManager是YARN群集中的单点故障。高可用性功能以“活动/备用ResourceManager”对的形式添加了冗余,以消除此单点故障。

建筑

ResourceManager高可用性概述

RM故障转移

ResourceManager HA通过Active / Standby体系结构实现-在任何时间,RM之一都处于活动状态,并且一个或多个RM处于Standby模式,等待活动发生任何事情。启用自动故障转移后,转换为活动状态的触发来自管理员(通过CLI)或集成的故障转移控制器。

手动转换和故障转移

如果未启用自动故障转移,则管理员必须手动将其中一个RM转换为Active。要从一个RM到另一个RM进行故障转移,他们应该先将Active-RM转换为Standby,然后将Standby-RM转换为Active。所有这些都可以使用“ yarn rmadmin ” CLI完成。

自动故障转移

RM可以选择嵌入基于Zookeeper的ActiveStandbyElector,以确定哪个RM应该是Active。当Active发生故障或无响应时,另一个RM被自动选为Active,然后接管。请注意,无需像HDFS那样运行单独的ZKFC守护程序,因为嵌入在RM中的ActiveStandbyElector充当故障检测器和领导者选举者,而不是单独的ZKFC守护进程。

RM故障转移上的客户端,ApplicationMaster和NodeManager

当有多个RM时,预计客户端和节点使用的配置(yarn-site.xml)会列出所有RM。客户端,ApplicationMaster(AM)和NodeManager(NM)尝试以循环方式连接到RM,直到它们到达活动RM。如果Active发生故障,则它们将继续轮询,直到命中“新的” Active。此默认重试逻辑实现为org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider。您可以通过实现org.apache.hadoop.yarn.client.RMFailoverProxyProvider并将yarn.client.failover-proxy-provider的值设置为类名来覆盖逻辑。

恢复先前活动的RM的状态

随着ResourceManger重新启用,RM被晋升为活动状态负载RM内部状态,并继续从以前的主动离开的地方尽可能多地取决于RM重启功能操作。对于先前提交给RM的每个托管应用程序,都会产生新的尝试。应用程序可以定期检查点以避免丢失任何工作。状态存储必须在两个活动/备用RM中均可见。当前,有两种用于持久性的RMStateStore实现-FileSystemRMStateStore和ZKRMStateStore。该ZKRMStateStore隐式允许在任何时间点对单个RM进行写访问,因此建议在HA群集中使用该存储。使用ZKRMStateStore时,不需要单独的防护机制来解决潜在的裂脑情况,在这种情况下,多个RM可以潜在地充当主动角色。

部署方式

构型

大多数故障转移功能都可以使用各种配置属性进行调整。以下是必需/重要的列表。yarn-default.xml包含旋钮的完整列表。有关更多信息,包括默认值,请参见yarn-default.xml。另请参阅“ ResourceManger重新启动”文档以获取有关设置状态存储的说明。

配置属性描述
yarn.resourcemanager.zk地址ZK仲裁的地址。用于状态存储和嵌入式领导者选举。
yarn.resourcemanager.ha。已启用启用RM HA
yarn.resourcemanager.ha.rm-idsRM的逻辑ID列表。例如,“ rm1,rm2”
yarn.resourcemanager。主机名。rm-id对于每个rm-id,指定RM对应的主机名。或者,可以设置RM的每个服务地址。
yarn.resourcemanager.ha.id在集合中标识RM。这是可选的;但是,如果设置,管理员必须确保所有RM在配置中都有自己的ID
yarn.resourcemanager.ha.automatic-failover.enabled启用自动故障转移;默认情况下,仅在启用HA时启用它。
内置了yarn.resourcemanager.ha.failover启用自动故障转移后,请使用嵌入式的leader-elector选择活动RM。默认情况下,仅在启用HA时启用它。
yarn.resourcemanager.cluster-id标识集群。由选民使用,以确保RM不会接替另一个群集的活动状态。
yarn.client.failover代理提供者客户端,AM和NM用于故障转移到活动RM的类。
yarn.client.failover-max-尝试FailoverProxyProvider应该尝试故障转移的最大次数。
yarn.client.failover-sleep-base-ms用于计算故障转移之间的指数延迟的睡眠基准(以毫秒为单位)。
yarn.client.failover-sleep-max-ms故障转移之间的最大睡眠时间(以毫秒为单位)
yarn.client.failover重试每次尝试连接到ResourceManager的重试次数。
yarn.client.failover重试套接字超时套接字超时时每次尝试连接到ResourceManager的重试次数。

样本配置

这是RM故障转移的最小设置示例。

 <属性>
   <name> yarn.resourcemanager.ha.enabled </ name>
   <value> true </ value>
 </ property>
 <属性>
   <name> yarn.resourcemanager.cluster-id </ name>
   <value> cluster1 </ value>
 </ property>
 <属性>
   <name> yarn.resourcemanager.ha.rm-ids </ name>
   <value> rm1,rm2 </ value>
 </ property>
 <属性>
   <name> yarn.resourcemanager.hostname.rm1 </ name>
   <value> master1 </ value>
 </ property>
 <属性>
   <name> yarn.resourcemanager.hostname.rm2 </ name>
   <value> master2 </ value>
 </ property>
 <属性>
   <name> yarn.resourcemanager.zk地址</ name>
   <value> zk1:2181,zk2:2181,zk3:2181 </ value>
 </ property>

管理员命令

yarn rmadmin具有一些特定于HA的命令选项,用于检查RM的运行状况/状态,并转换为“活动” /“待机”。HA的命令将用yarn.resourcemanager.ha.rm-ids设置的RM服务ID作为参数。

 $ yarn rmadmin -getServiceState rm1
 活性
 
 $ yarn rmadmin -getServiceState rm2
 支持

如果启用了自动故障转移,则不能使用手动转换命令。

 $ yarn rmadmin -transitionToStandby rm1
 为org.apache.hadoop.yarn.client.RMHAServiceTarget@1d8299fd启用了自动故障转移
 拒绝手动管理HA状态,因为这可能会导致
 脑裂情况或其他错误状态。
 如果您确定自己知道自己在做什么,请
 指定forcemanual标志。

有关更多详细信息,请参见YarnCommands

ResourceManager Web UI服务

假设备用RM已启动并正在运行,则备用数据库会自动将所有Web请求重定向到活动数据库,“关于”页面除外。

网页服务

假设备用RM已启动并正在运行,则在备用RM上调用ResourceManager REST API中描述的RM Web服务会自动重定向到活动RM。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值