在上一篇文章从零开始搭建HDFS高可用(HA)环境(使用QJM)我们搭建了高可用的HDFS系统,接下来我们开始搭建Hadoop中的另外一个强大的组件—–MapReduceV2(或者说YARN)。
高可用YARN的搭建比搭建HDFS简单多了。架构如下:
1、我们要先安装好Zookpeer集群,这部分内容在从零开始搭建HDFS高可用(HA)环境(使用QJM)已经介绍。
2、配置hadoop配置文件中的yarn-site.xml文件:
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster1</value>#这个ID号不能与当前存在的ID号相同
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>node1</value>#选择node1和node2为ResourceManager
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>node2</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>node8:2181,node9:2181,node10:2181</value>#选择对应的zk机器
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
3、配置mapred-site.xml文件(这个文件只有mapred-site.xml.template,重命名一下就好了):
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>#将mapreduce执行在yarn中
</property>
将配置文件拷贝到其他机器上就行了。
我们可以发现备用的resourcemanager没有自动启动,我们要在node2上手动启动。使用命令yarn-daemon.sh start resourcemanager
现在我们可以通过8088端口查看resourcemanager的监控页面:
如果我们访问备用resourcemanager会重定向到活跃状态的RM上。
现在我们使node1上的RM(active状态)挂掉,看看ZK能否帮我们自动切换:
自动切换成功: