ResourceManager HA

作者: 心_的方向 | 来源:发表于2016-10-21 16:42 被阅读189次

    架构图解析

    架构图.png

    ResourceManager会在内存中存放各个nodeManager节点资源信息、任务运行状态信息。通过ZooKeeper集群,配置一个activeRM和standbyRM。activeRM把状态这些状态信息写入到zookeeper集群中。
    如果ActiveRM被关闭,故障转移,StandbyRM直接从zookeeper去读取状态。

    ResourceManager HA 配置部署(在搭建完zookeeper集群后)

    1. 配置文件
      core-site.xml
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/app/hadoop-2.5.0/data/tmp</value>
        </property>
    
        <property>
          <name>fs.defaultFS</name>
          <value>hdfs://bigdata-00:8020</value>
        </property>
    

    yarn-site.xml

        <!-- 指定RM HA可用 -->
        <property>
            <name>yarn.resourcemanager.ha.enabled</name>
            <value>true</value>
        </property>
    
        <!-- 设置集群ID-->
        <property>
            <name>yarn.resourcemanager.cluster-id</name>
            <value>yarn-cluster</value>
        </property>
        <!-- 给集群ID下的节点设置名称-->
        <property>
            <name>yarn.resourcemanager.ha.rm-ids</name>
            <value>rm1,rm2</value>
        </property>
        <!-- 指定具体的RM节点-->
        <property>
            <name>yarn.resourcemanager.hostname.rm1</name>
            <value>bigdata-01</value>
        </property>
        <property>
            <name>yarn.resourcemanager.hostname.rm2</name>
            <value>bigdata-02</value>
        </property>
    
        <!-- 指定zookeeper集群节点和端口-->
        <property>
            <name>yarn.resourcemanager.zk-address</name>
            <value>bigdata-00:2181,bigdata-01:2181,bigdata-02:2181</value>
        </property>
    
        <!-- 在RM节点接管后,任务状态可以恢复-->
        <property>
            <name>yarn.resourcemanager.recovery.enabled</name>
            <value>true</value>
        </property>
    
        <!-- 设置存储yarn中状态信息的地方,默认为hdfs,这里设置为zookeeper-->
        <property>
            <name>yarn.resourcemanager.store.class</name>
            <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
        </property>
    
        <!-- 使在yarn上能够运行mapreduce_shuffle程序-->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
    
    1. 启动各个节点的服务,最后相关后台进程如下


      节点0.png
      节点1.png
      节点2.png
    2. 运行wordcount程序测试RM HA。

    • 在namenode节点上运行MR程序

    [wulei@bigdata-00 hadoop-2.5.0]$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /test/ /test/out

    • 在运行到map端时,关闭节点bigdata-01的RM进程

    [wulei@bigdata-01 hadoop-2.5.0]$ jps
    8214 DataNode
    8569 NodeManager
    5195 QuorumPeerMain
    8316 ResourceManager
    8669 Jps
    [wulei@bigdata-01 hadoop-2.5.0]$ kill -9 8316

    • 查看bigdata-02节点的resoucemanager的web管理界面。可以发现,mapreduce程序仍然可以继续运行至结束。


      yarn1.png
      yarn5.png

    相关文章

      网友评论

        本文标题:ResourceManager HA

        本文链接:https://www.haomeiwen.com/subject/snfcuttx.html