Yarn中Resource Manager HA集群搭建

第一步:在master上打开hadoop的配置文件yarn-site.xml 加入以下内容

<configuration>
<!-- Site specific YARN configuration properties -->
<property>
   <name>yarn.resourcemanager.ha.enabled</name>
   <value>true</value>
 </property>


 <property>
   <name>yarn.resourcemanager.cluster-id</name>
   <value>rmha</value>
 </property>


 <property>
   <name>yarn.resourcemanager.ha.rm-ids</name>
   <value>rm1,rm2</value>
 </property>


 <property>
   <name>yarn.resourcemanager.hostname.rm1</name>
   <value>master</value>
 </property>


 <property>
   <name>yarn.resourcemanager.hostname.rm2</name>
   <value>slave1</value>
 </property>


 <property>
   <name>yarn.resourcemanager.zk-address</name>
   <value>master:2181,slave1:2181,slave2:2181</value>
 </property>
</configuration>


Yarn中Resource Manager HA集群搭建

Yarn中Resource Manager HA集群搭建

Yarn中Resource Manager HA集群搭建

Yarn中Resource Manager HA集群搭建

Yarn中Resource Manager HA集群搭建

第二步:在master上打开hadoop的配置文件mapred-site.xml 加入以下内容:

Yarn中Resource Manager HA集群搭建

vim mapred-site.xml

设置MR的运行环境为Yarn

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

</configuration>

Yarn中Resource Manager HA集群搭建

第二步:在master上打开hadoop的配置文件yarn-site.xml 加入以下内容:

<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>

Yarn中Resource Manager HA集群搭建

Node Manager不用单独配置 因为Node Manager必须与DataNode位于同一台机器上 根据DataNode就可以知道Node Manager是哪台机器

第三步:将master上hadoop的配置文件拷贝到slave1 slave2 slave3上

Yarn中Resource Manager HA集群搭建

第四步:在master上启动Yarn:start-yarn.sh

Yarn中Resource Manager HA集群搭建

第五步:在slave1上启动备用的Resource Manager

Yarn中Resource Manager HA集群搭建

第六步:通过浏览器查看Resource Manager状态(端口号为8088)

Yarn中Resource Manager HA集群搭建

这里显示的就是三台Node Manager

Yarn中Resource Manager HA集群搭建

访问备用的Resource Manager 会给出提示 并重定向到主Resource Manager的监控页面

第七步:手动强制杀掉master上的Resource Manager进程 测试slave1是否会自动接管

Yarn中Resource Manager HA集群搭建

Yarn中Resource Manager HA集群搭建

此时打开slave1的监控页面 可以直接打开 不会发生重定向 说明slave1已经成功接管