(12)ResourceManager高可用性

介绍

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

建筑

ResourceManager高可用性概述

RM故障转移

ResourceManager HA通过主动/备用架构实现 - 在任何时间点,其中一个RM是活动的,并且一个或多个RM处于待机模式,等待接管,如果活动发生任何事情。转换到活动的触发器来自管理员(通过CLI)或通过集成的故障转移控制器(当启用自动故障转移时)。

手动转换和故障转移

当未启用自动故障转移时,管理员必须手动将其中一个RM转换为活动。要从一个RM故障切换到另一个RM,需要首先将Active-RM转换为Standby并将Standby-RM转换为Active。所有这一切都可以使用“ yarn rmadmin ”CLI 来完成。

自动故障转移

RM可以选择嵌入基于Zookeeper的ActiveStandbyElector来决定哪个RM应该是活动的。当活动下降或变得无响应时,另一RM被自动选择为活动,然后接管。注意,不需要像HDFS那样运行单独的ZKFC守护程序,因为嵌入在RM中的ActiveStandbyElector用作故障检测器和领导选举人,而不是单独的ZKFC定义。

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

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

恢复以前的活跃RM的状态

在启用ResourceManger重新启动后,升级到活动状态的RM将加载RM内部状态,并根据RM重新启动功能,尽可能继续从上次活动停止的位置开始操作。为先前提交给RM的每个托管应用程序生成新尝试。应用程序可以定期检查点,以避免丢失任何工作。状态存储必须从Active / Standby RM两个可见。目前,有两个用于持久化的RMStateStore实现 - FileSystemRMStateStore和ZKRMStateStore。该ZKRMStateStore隐式地允许写在任何时间点访问单个RM,因此是推荐的商店HA群集使用。当使用ZKRMStateStore时,不需要单独的屏蔽机制来解决潜在的裂脑情况,其中多个RM可以潜在地承担活动角色。当使用ZKRMStateStore时,建议不要在Zookeeper集群上设置“ zookeeper.DigestAuthenticationProvider.superDigest ”属性,以确保zookeeper管理员无权访问YARN应用程序/用户凭据信息。

部署

配置

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

配置属性 描述
yarn.resourcemanager.zk-address ZK-quorum的地址。用于状态存储和嵌入式领导选举。
yarn.resourcemanager.ha.enabled 启用RM HA。
yarn.resourcemanager.ha.rm-id RM的逻辑ID列表。例如“rm1,rm2”。
yarn.resourcemanager.hostname。rm-id 对于每个rm-id,指定RM对应的主机名。或者,可以设置RM的每个服务地址。
yarn.resourcemanager.address。rm-id 对于每个rm-id,请为客户端指定host:port以提交作业。如果设置,将覆盖yarn.resourcemanager.hostname中设置的主机名rm-id
yarn.resourcemanager.scheduler.address。rm-id 对于每个rm-id,为ApplicationMasters指定scheduler host:port以获取资源。如果设置,将覆盖yarn.resourcemanager.hostname中设置的主机名rm-id
yarn.resourcemanager.resource-tracker.address。rm-id 对于每个rm-id,请为NodeManagers指定host:port以进行连接。如果设置,将覆盖yarn.resourcemanager.hostname中设置的主机名rm-id
yarn.resourcemanager.admin.address。rm-id 对于每个rm-id,请为管理命令指定host:port。如果设置,将覆盖yarn.resourcemanager.hostname中设置的主机名rm-id
yarn.resourcemanager.webapp.address。rm-id 对于每个rm-id,指定RM Web应用程序对应的主机:端口。如果将yarn.http.policy设置为HTTPS_ONLY,则不需要此参数。如果设置,将覆盖yarn.resourcemanager.hostname中设置的主机名rm-id
yarn.resourcemanager.webapp.https.address。rm-id 对于每个rm-id,指定RM https Web应用程序对应的host:port。如果将yarn.http.policy设置为HTTP_ONLY,则不需要此参数。如果设置,将覆盖yarn.resourcemanager.hostname中设置的主机名rm-id
yarn.resourcemanager.ha.id 标识合奏中的RM。这是可选的; 然而,如果设置,管理员必须确保所有RM在配置中有自己的ID。
yarn.resourcemanager.ha.automatic-failover.enabled 启用自动故障转移; 默认情况下,仅在启用HA时启用。
yarn.resourcemanager.ha.automatic-failover.embedded 在启用自动故障切换时,使用嵌入式领导选民来选择主动RM。默认情况下,仅在启用HA时启用。
yarn.resourcemanager.cluster-id 标识集群。由选民使用,以确保RM不会接管作为另一个群集的活动。
yarn.client.failover-proxy-provider 客户端,AM和NM用于故障转移到Active RM的类。
yarn.client.failover-max-attempts FailoverProxyProvider应尝试故障转移的最大次数。
yarn.client.failover-sleep-base-ms 用于计算故障切换之间的指数延迟的睡眠基数(以毫秒为单位)。
yarn.client.failover-sleep-max-ms 故障切换之间的最长休眠时间(以毫秒为单位)。
yarn.client.failover-retries 每次尝试连接到ResourceManager时的重试次数。
yarn.client.failover-retries-on-socket-timeouts 每次尝试在套接字超时时连接到ResourceManager的重试次数。
示例配置

以下是RM故障转移的最低设置示例。

<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具有几个HA特定的命令选项,用于检查RM的运行状况/状态,并转换到Active / Standby。HA的命令采用由yarn.resourcemanager.ha.rm-ids作为参数设置的RM的服务标识。

 $ yarn rmadmin -getServiceState rm1
 活性

 $ yarn rmadmin -getServiceState rm2
 支持

如果启用了自动故障转移,则不能使用手动转换命令。虽然你可以通过-forcemanual标志覆盖它,你需要谨慎。

 $ 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服务会自动重定向到Active RM。


原文:https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
Hadoop的高可用性是指Hadoop集群能够在节点故障或其他异常情况下保持持续可用和正常运行的能力。为了实现高可用性,Hadoop引入了一些机制和功能,下面是一些常见的方法: 1. NameNode高可用:Hadoop的HDFS(分布式文件系统)中,NameNode是一个关键的组件,负责存储文件系统的元数据。为了保证NameNode的高可用性,可以采用HDFS的HA(高可用)模式,通过在集群中运行多个NameNode实例,并使用共享存储来存储元数据,实现故障切换和自动恢复。 2. 数据复制与故障恢复:HDFS通过数据复制来保证数据的高可用性。默认情况下,HDFS将数据块复制到多个数据节点上,如果某个数据节点发生故障,可以从其他副本节点获取数据来实现故障恢复。 3. YARN ResourceManager高可用:YARN是Hadoop的资源管理器,负责集群资源的调度和管理。为了保证ResourceManager高可用性,可以采用YARN的HA模式,通过在集群中运行多个ResourceManager实例,并使用ZooKeeper等工具来进行故障切换和状态同步。 4. 故障检测与自动恢复:Hadoop中的各个组件会定期检测集群中的节点和服务的状态,一旦发现故障,会触发自动的故障切换和恢复机制,将任务分配给其他可用的节点或服务。 总之,Hadoop通过多副本数据复制、故障切换和自动恢复机制等方式实现高可用性,确保集群在故障或异常情况下能够持续可用和正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值