高可用性的ResourceManager

YARN的架构图

有图可知,ResourceManager(RM)对整个集群的重要就不言而喻了吧。但是由于多种原因可能会造成ResourceManager出现问题,由于单位的集群ResourceManager也出现问题,今天我分析一下ResourceManager的High Availability(高可用性)。

ResourceManager的作用:负责协调集群上计算资源的分配,与NodeManager、MRApplicationMaster、HeartBeat等进行进行交互。

ResourceManager的高可用性:在Hadoop-2.4之前,ResourceManager是集群的单点故障。ResourceManager的高可用性是以“Active/Standby(活动/备用)”的形式增加一个节点冗余,并利用Zookeeper集群,把Active的ResourceManager状态信息写入Zookeeper用于启动Standby ResourceManager,以消除这个单点故障。如下图所示。

ResourceManager HA是通过“Active/Standby”架构来实现的。一个ResourceManager处于活动状态,一个或多个ResourceManager处于备用状态以实现接管活动状态下的发生的任何状况。当Active出现状况需要自动启用Standby的ResourceManager时,时通过Failover-Controller(故障转移控制器)来实现的。

官网:

http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.html

RM 故障转移控制器

当不启用自动故障转移时,管理员必须手动将其中一个ResourceManager由Standby状态转换为Active状态。从一个ResourceManager转移到另一个ResourceManager需要首先将Active状态的ResourceManager转换为Standby状态的ResourceManager,之后才可将Standby状态ResourceManager装换为Active状态的 ResourceManager,这些操作都是通过“yarn rmadmin CLI”来完成。

在集群中任意节点上启动Zookeeper的zkfc的初始化状态:

sudo -u hdfs zkfc -formatZK

启动自动故障转移功能,start-dfs.sh脚本将在任何运行NameNode的主机上自动启动ZKFC守护进程,一旦ZKFC启动完毕则自动选择一个Standby NameNode最为新的Active NameNode。若手动管理集群中的服务,可在每台Standby NameNode上执行命令:

sudo -u hadoop-daemon.sh start zkfc

或者手动转换的命令:

sudo -u hdfs haadmin -transitionToActive/transitionToStandby

其中haadmin工具是用运行HDFS HA的管理客户端工具

可以选择嵌入基于Zookeeper的ActiveStandbyElector来决定哪个RM应该是启动的,当RM的活动停止或无响应时,另一个RM被自动选择为Active RM,整个集群的资源调配功能由新的Active RM来接管。但是,RM HA不需要像HDFS那样运行单独的ZKFC守护进行,因为嵌入在RM中的ActiveStandbyElector充当故障检测器和Leader Elector,而不是单独的ZKFC进程。

当有多个RM时,把集群中的所有的yarn-site.xml配置文件中添加所有的RM的主机名或IP地址。MRApplicationMaster和NodeManager尝试以循环方式连接RM,直到它们连接Active RM,若ResourceManager停止或无响应,它们将继续轮询直到遇到新的Active为止。

关于ResourceManager高可用性的yarn-site.xml文件的部分配置:

<property>
  <name>yarn.resourcemanager.ha.enabled</name>
  <value>true</value>
</property>
<!-- RM的Active/Standby的自动切换>
<property>  
<name>yarn.resourcemanager.ha.automatic-failover.recover.enabled</name>  
<value>true</value>  
 </property
<!--RM故障自动恢复-->  
<property>  
<name>yarn.resourcemanager.recovery.enabled</name>   
<value>true</value>   
</property> 
<property>
  <name>yarn.resourcemanager.cluster-id</name>
  <value>zysdmaster000</value>
</property>
<property>
  <name>yarn.resourcemanager.ha.rm-ids</name>
  <value>standbymaster000,standbymaster001</value>
</property>
<property>
  <name>yarn.resourcemanager.hostname.rm1</name>
  <value>standbymaster000</value>
</property>
<property>
  <name>yarn.resourcemanager.hostname.rm2</name>
  <value>standbymaster001</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address.rm1</name>
  <value>standbymaster000:8088</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address.rm2</name>
  <value>standbymaster001:8088</value>
</property>
<property>
  <name>yarn.resourcemanager.zk-address</name>
  <value>zysdslave001:2181,zysdslave002:2181,zysdslave003:2181,zysdslave004:2181</value>
</property>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop是一个分布式计算框架,它的高可用性非常重要。在Hadoop集群中,如果一个节点宕机或出现故障,会影响整个集群的运行。因此,为了保证Hadoop集群的高可用性,需要搭建高可用集群。以下是Hadoop高可用集群搭建的步骤: 1. 安装ZooKeeper ZooKeeper是Hadoop集群高可用性的核心组件。在Hadoop 2.x版本中,ZooKeeper是必须的。因此,需要先安装ZooKeeper。 2. 配置ZooKeeper 在ZooKeeper中,需要配置一些参数,如集群节点的IP地址、端口号等。这些参数将用于确保ZooKeeper在Hadoop集群中的正常运行。 3. 配置Hadoop 在Hadoop中,需要配置一些参数以确保Hadoop与ZooKeeper的正确交互。需要修改hdfs-site.xml和core-site.xml文件。 4. 配置NameNode的高可用性 NameNode是Hadoop集群中的关键组件之一。为了确保NameNode的高可用性,需要将其配置为Active-Standby模式。这意味着在一个节点宕机时,另一个节点将成为Active节点,继续处理请求。 5. 配置ResourceManager高可用性 ResourceManager是YARN的关键组件之一,它管理着整个集群的资源。为了确保ResourceManager高可用性,需要将其配置为Active-Standby模式。这意味着在一个节点宕机时,另一个节点将成为Active节点,继续处理请求。 6. 测试集群 最后,需要测试Hadoop集群的高可用性。可以通过关闭某个节点来模拟节点宕机的情况,然后观察Hadoop集群的行为。 以上是Hadoop高可用集群搭建的步骤。通过这些步骤,可以确保Hadoop集群的高可用性,提高整个集群的稳定性和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值