zoukankan      html  css  js  c++  java
  • ResourceManager的HA

    大家都知道在hadoop2中对HDFS的改进很大,实现了NameNode的HA;也增加了ResourceManager。但是ResourceManager也可以实现HA。你没看错,确实是ResourceManager的HA。注意是在Apache Hadoop 2.4.1版本中开始加入的,可不是任意一个版本。

    我们不讲单点问题的危害,直接讲如何配置ResourceManager的HA。

    HA的架构

    Overview of ResourceManager High Availability

    如果大家理解HDFS的HA,那么ResourceManager的HA与之是相同道理的:也是Active/Standby架构,任意时刻,都一个是Active,其余处于Standby状态的ResourceManager可以随时转换成Active状态。状态转换可以手工完成,也可以自动完成。手工完成时通过命令行的管理命令(命令是“yarn rmadmin”)。自动完成是通过配置自动故障转移(automatic-failover),使用集成的failover-controller完成状态的自动切换。

    自动故障转移是依赖于ZooKeeper集群,依赖ZooKeeper的ActiveStandbyElector会嵌入到ResourceManager中,当Active状态的ResourceManager失效时,处于 Standby状态的ResourceManager就会被选举为Active状态的,实现切换。注意:这里没有ZooKeeperFailoverController进程,这点和HDFS的HA不同。

    对于客户端而言,必须知道所有的ResourceManager中。因此,需要在yarn-site.xml中配置所有的ResourceManager。那么,当一个Active状态的ResourceManager失效时,客户端怎么办哪?客户端会采用轮询机制,轮询配置在yarn-site.xml中的ResourceManager,直到找到一个active状态的ResourceManager。如果我们想修改这种寻找ResourceManager的机制,可以继承类org.apache.hadoop.yarn.client.RMFailoverProxyProvider,实现自己的逻辑。然后把类的名字配置到yarn-site.xml的配置项yarn.client.failover-proxy-provider中。

    配置

    在yarn-site.xml中配置如下

     <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.zk-address</name>
       <value>zk1:2181,zk2:2181,zk3:2181</value>
     </property>

    命令

    查看状态的命令

    yarn rmadmin –getServiceState rm1

    状态切换的命令

    yarn rmadmin –transitionToStandby rm1

    【翻译自http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.html】

  • 相关阅读:
    原型模型
    单例模式
    C# 委托 delegate
    C#泛型
    客户端注册Cannot execute request on any known server解决
    SpringCloud 学习(二)-2 :Securing The Eureka Server
    SpringCloud 学习(二)-1 :服务注册与发现Eureka扩展
    解决网速慢时maven仓库访问慢
    SpringCloud 学习(二) :服务注册与发现Eureka
    SpringCloud版本问题
  • 原文地址:https://www.cnblogs.com/mlj5288/p/4449848.html
Copyright © 2011-2022 走看看