(12)ResourceManager高可用性
来源:互联网 发布:java 分布式框架 编辑:程序博客网 时间:2024/05/21 06:47
- 介绍
- 建筑
- RM故障转移
- 恢复以前的活跃RM的状态
- 部署
- 配置
- 管理命令
- ResourceManager Web UI服务
- 网页服务
介绍
本指南概述了YARN的ResourceManager的高可用性,以及如何配置和使用此功能的详细信息。ResourceManager(RM)负责跟踪集群中的资源,并调度应用程序(例如MapReduce作业)。在Hadoop 2.4之前,ResourceManager是YARN集群中的单点故障。高可用性功能以活动/备用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重新启动的文档。
示例配置
以下是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
- (12)ResourceManager高可用性
- 高可用性
- 高可用性
- 【SQL Server高可用性】高可用性概述
- MaxDB有关高可用性
- Oracle Flashback 高可用性
- UNIX0001.高可用性分析
- 伸缩性与高可用性
- Mysql高可用性实施方案
- HA 高可用性
- 高可用性中间件 OpenSAF
- 数据库高可用性
- 高可用性知识总结
- Apache 高可用性
- 架构要素-高可用性
- mysql高可用性探究
- MySQL企业级高可用性
- Redis 高可用性部署
- 【图像特征提取1】方向梯度直方图HOG---从理论到实践------附带积分图像的解析
- 最小值到最大值的随机数
- 基于How To Tango With Django 1.9的重新实践(8)——Templates
- 【阿里云网站日志分析实践】通过Log Service日志服务导入MaxCompute分析
- 学习笔记——Maven超级POM
- (12)ResourceManager高可用性
- .xml文件
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(35)
- APP配置多环境分发(二)
- vb后台打开网页代码
- 前端面试中常见的算法问题读后整理
- C提高(5)/二级指针
- 问题(1)
- 计算机图形学08一一多边形一些概率