hadoop-2.7.4-翻译文档-resourcemanager高可用
来源:互联网 发布:域名和空间在哪里买 编辑:程序博客网 时间:2024/04/26 01:47
ResourceManager高可用性
介绍
本指南概述了YARN的ResourceManager的高可用性,并详细介绍了如何配置和使用此功能。ResourceManager(RM)负责跟踪群集中的资源,并调度应用程序(例如MapReduce作业)。在Hadoop 2.4之前,ResourceManager在YARN集群中存在单点故障。高可用性功能以active/standby rm pair的形式添加冗余,以消除此单一故障点。
结构
RM故障转移
ResourceManager HA通过active/standby架构实现 - 在任何时间点,其中一个RM是活动的,一个或多个RM处于待机模式,等待接管活动。在启用自动故障切换时,转换为活动的触发器来自管理员(通过CLI)或集成故障切换控制器。
手动转换和故障切换
当未启用自动故障切换时,管理员必须手动将其中一个RM转换为active状态。想要从一个RM故障转移到另一个,预计首先将Active-RM转换为standby,并将Standby-RM转换为活动。所有这一切可以使用“ yarn raadmin ”CLI完成。
自动故障切换
RM可以选择嵌入基于Zookeeper的ActiveStandbyElector来决定哪个RM应该是活动的。当active rm 挂掉或变得无响应时,另一个RM自动被选为active,然后接管任务。请注意,不需要像HDFS那样运行单独的ZKFC守护程序,因为嵌入在RM中的ActiveStandbyElector可以作为故障检测器和进行 leader选举 而不是使用单独的ZKFC进程。
客户端,ApplicationMaster和NodeManager在RM故障切换
当有多个RM时,客户端和节点使用的配置[yarn-site.xml]来获取所有的RM节点。客户端,应用程序主机(AM)和节点管理器(NM)尝试以循环方式连接到RM,直到它们连接到Active RM。如果active 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的运行状况和状态,或进行RM的状态转换。HA的命令将使用services.resourcemanager.ha.rm-ids设置的rm表示作为参数。
$ yarn rmadmin -getServiceState rm1 active $ yarn rmadmin -getServiceState rm2 standby
如果启用自动故障切换,则无法使用手动转换命令。虽然可以通过强制手动标记来操作,但您需要谨慎小心。
$ yarn rmadmin -transitionToStandby rm1 Automatic failover is enabled for org.apache.hadoop.yarn.client.RMHAServiceTarget@1d8299fd Refusing to manually manage HA state, since it may cause a split-brain scenario or other incorrect state. If you are very sure you know what you are doing, please specify the forcemanual flag.//org.apache.hadoop.yarn.client.RMHAServiceTarget@1d8299fd的自动故障转移已启用。
//手动转换HA RM状态的结果,有可能导致脑裂或者其他故障。
//如果你非常确定你知道自己在做什么的话,请使用 forcemanual 参数。
有关详细信息,请参阅YarnCommands。
ResourceManager Web UI服务
假设standby rm启动并正在运行,则其会自动将所有Web请求重定向到active rm,除了“about”页面。
网页服务
假设standby rm启动并正在运行,在standby rm上调用ResourceManager REST API时呈现的RM Web服务将自动重定向到Active RM。
- hadoop-2.7.4-翻译文档-resourcemanager高可用
- hadoop-2.7.4-翻译文档-QJM高可用
- 【Hadoop】Hadoop官方文档翻译—— YARN ResourceManager High Availability 2.7.3
- Hadoop-2.4.1学习之高可用ResourceManager
- ZooKeeper+Hadoop的ResourceManager HA集群高可用配置
- Hadoop官方文档翻译—— YARN ResourceManager High Availability 2.7.3
- Hadoop2.4的ResourceManager HA高可用配置
- hadoop系列文档4-配置Yarn高可用HA
- Hadoop2的ResourceManager高可用配置
- hadoop-2.7.4-翻译文档-集群部署
- hadoop-2.7.4-翻译文档-机架感知
- hadoop-2.7.4-翻译文档-联邦HDFS
- hadoop-2.7.4-翻译文档-viewFS指南
- hadoop系列文档3-配置Hdfs高可用HA
- hadoop系列文档3-配置Hdfs高可用HA
- Hadoop+zookeeper+hive高可用集群部署文档
- Hadoop2.7.1配置NameNode+ResourceManager高可用原理分析
- hadoop 2.7.1 高可用安装部署
- JVM中对象的访问定位
- 想知道吗?Windows怎样把SQL Server迁移到Linux上
- (HDU
- 单例
- C++ STL几个容器的底层实现
- hadoop-2.7.4-翻译文档-resourcemanager高可用
- 第一次微信端网页开发项目遇到的坑
- 关于树莓派安装不了libmysqlclient-dev的解决办法
- 微信小程序tabBar设置
- 教你正确使用VSCode写Python
- 《利用Python进行数据分析》笔记
- (hdu 5179)beautiful number(数位DP)
- Hadoop for .NET Developers(七):手动加载数据到Hadoop
- 硬件系统概要设计-1-EMC的可行性分析