ResourceManager HA 配置
来源:互联网 发布:淘宝有哪些孕妇装店 编辑:程序博客网 时间:2024/06/04 17:43
陆续的把Hadoop集群部署、HDFS的HA配置完成,把ResourceManager的HA配置好之后,Hadoop集群配置也算是完整了,可以满足小型中型生产环境Hadoop集群搭建的需要。如果真要搭建超大型的Hadoop集群,这些只能算是参考,还需要修改很多其他参数,使性能更好一些。
ResourceManager(RM)负责跟踪集群中资源使用情况,调度应用程序(比如MapReduce作业)。在Hadoop 2.4之前,ResourceManager存在单点故障,需要通过其他方式实现HA。官方给出的HA方案是Active/Standby两种状态ResourceManager的冗余方式,类似于HDFS的HA方案,也就是通过冗余消除单点故障。
HA架构
下图是ResourceManager HA方案架构图:
RM故障转移
ResourceManager HA是通过Active/Standby冗余架构实现的,在任何时间点,其中一个RM处于Active状态,其他RM处于Standby状态,Standby状态的RM就等着Active扑街或被撤。通过管理员命令或自动故障转移(需要开启自动故障转移配置),Standby就会转为Active状态,对外提供服务。
- 手动转换和故障转移:当未启用自动故障转移时,就需要管理员手动转换。首先将Active状态的RM转为Standby状态,然后将一个Standby状态的转为Active状态。这些操作都需要通过
yarn rmadmin
命令来操作。 - 自动故障转移:RM可以通过内嵌的基于Zookeeper的Active/Standby选择器决定哪个RM应该是Active状态的。当Active性能下降或无响应时,一个Standby状态的RM就被推举出来,转为Active状态接管。这里不需要像HDFS的HA配置需要一个单独的ZKFS守护进程辅助完成切换,因为这个功能已经内嵌在RM中。
客户端、ApplicationMaster和NodeManager在故障转移时,会轮训这些RM节点,知道找到Active状态的RM。如果Active节点性能下降,他们会重新轮训查找新的Active状态的RM。默认的轮训扩展是org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider
。可以通过实现org.apache.hadoop.yarn.client.RMFailoverProxyProvider
,并配置yarn.client.failover-proxy-provider
来实现自己的逻辑。
恢复RM状态
当启用ResourceManger重启状态恢复之后,新的Active状态的RM会加载上一个RM状态,并根据状态尽可能的恢复之前的操作。应用程序会定期检查,以避免丢失数据。状态存储需要对Active状态和Standby状态的RM都可见。目前,RMStateStore
有两个持久化实现,FileSystemRMStateStore
和ZKRMStateStore
。ZKRMStateStore
隐式的只允许一个RM写入操作,可以没有单独的防护机制就能够避免闹裂问题,所以是HA集群推荐的状态存储方式。使用ZKRMStateStore
时,建议不要在zookeeper集群上设置zookeeper.DigestAuthenticationProvider.superDigest
配置,以确保zk管理员无法访问YARN的信息。
部署
配置
大多数的故障转移功能可以使用各种配置进行调整,下表是必须的和重要的参数项。完整的配置和默认值参见yarn-default.xml。关于状态存储参见ResourceManger状态存储。
配置示例(配置承接hadoop集群部署(yarn)中的,使用s107和s108作为RM双节点):
<!--Configurations for the state-store of ResourceManager--><property> <name>yarn.resourcemanager.recovery.enabled</name> <value>true</value></property><property> <name>yarn.resourcemanager.store.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value></property><property> <name>yarn.resourcemanager.zk-address</name> <value>10.6.3.109:2181,10.6.3.110:2181,10.6.3.111:2181</value> <description>ZooKeeper服务的地址,多个地址使用逗号隔开</description></property><!--Configurations for HA of ResourceManager--><property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> <description>是否启用HA,默认false</description></property><property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> <description>最少2个</description></property><property> <name>yarn.resourcemanager.hostname.rm1</name> <value>s107</value></property><property> <name>yarn.resourcemanager.hostname.rm2</name> <value>s108</value></property><property> <name>yarn.resourcemanager.cluster-id</name> <value>yarn-ha</value> <description>集群HA的id,用于在ZooKeeper上创建节点,区分使用同一个ZooKeeper集群的不同Hadoop集群</description></property><property> <name>yarn.resourcemanager.webapp.address.rm1</name> <value>s107:8088</value></property><property> <name>yarn.resourcemanager.webapp.address.rm2</name> <value>s108:8088</value></property>
启动
可以在s107上直接通过start-yarn.sh
启动YARN,这样在s107上会启动ResourceManager,在其他节点上会启动NodeManager。
需要注意的是s108上不会自己启动ResourceManager,需要手动启动。通过命令yarn-daemon.sh start resourcemanager
手动启动。
管理命令
对于YARN的管理前面又说到,用的命令是yarn rmadmin
,可以检查RM的健康状态、转换Active/Standby状态等,需要使用yarn.resourcemanager.ha.rm-ids
参数配置的RM的id作为参数。比如,查看RM状态:
$ yarn rmadmin -getServiceState rm1active$ yarn rmadmin -getServiceState rm2standby
其他的命令可以通过yarn rmadmin -help
获取。
Web管理页面
管理界面就是yarn.resourcemanager.webapp.address.[rm-id]配置的地址,如果访问的是Standby的RM地址,会自动重定向到Active状态的RM地址。About页面除外,可以访问About页面查看当前哪个节点是Active状态,哪个是Standby状态的。
参考文章
1. ResourceManager High Availability
个人主页: http://www.howardliu.cn
个人博文: ResourceManager HA 配置
CSDN主页: http://blog.csdn.net/liuxinghao
CSDN博文: ResourceManager HA 配置
- resourcemanager ha 配置
- ResourceManager HA 配置
- HDFS HA with QJM && ResourceManager HA配置
- ResourceManager HA
- ResourceManager HA
- Resourcemanager HA
- 配置resourcemanager的HA自动容灾
- Hadoop+Zookeeper+NameNode(HA)+ResourceManager(HA)自动切换 配置
- Hadoop2.4的ResourceManager HA高可用配置
- ZooKeeper+Hadoop的ResourceManager HA集群高可用配置
- Hadoop2.5.1 ResourceManager HA
- hadoop-2.3.0-cdh5.1.0完全分布式集群配置及HA配置(resourcemanager.ha)
- Hadoop 2.0 ResourceManager HA原理
- hadoop2中ResourceManager的HA
- HDFS2.X的HA+Resourcemanager的HA
- HBase+ZooKeeper+Hadoop2.6.0的ResourceManager HA集群高可用配置
- HBase+ZooKeeper+Hadoop2.6.0的ResourceManager HA集群高可用配置
- Hadoop HA配置下ResourceManager启动不了(电脑之前宕机了)
- c的第一课
- Android Studio使用CMake编译JNI初探
- mysql全国省市区县表(带经纬度)
- Android-------------EventBus通信
- 如何转载CSDN的其他博主的博客-转载
- ResourceManager HA 配置
- Exkmp
- Java How to get the PID from a process?
- JavaScript基础笔记_17-07-11
- centos7为docker配置远程TLS验证,端口设定为2376
- windows下scipy的安装
- RadioGroup
- obs在windows下的完整编译安装教程
- 地图比例尺,分辨率,dpi之间的关系