前提是Hadoop的HDFS高可用集群已经搭建完毕。在搭建2.x版本的高可用Hadoop集群博客中有详细介绍,本篇博客主要介绍搭建MapReduce高可用。
一 准备条件说明
四个虚拟机: node1,node2,node3,node4。NameNode1和NameNode2分别是node1,node2,DataNode有三个,分别是node2,node3,node4
搭建MapReduce时,担任resourcemanager任务的虚拟机为node3,node4,每个DataNode上都要开启一个nodemanager
二 开始搭建
第一步,配置文件的修改
进入node1虚拟机中
进入hadoop的配置文件目录下,将mapred-site.xml.template重命名为 mapred-site.xml 。使用下面命令
mv mapred-site.xml.template mapred-site.xml
编辑mapred-site.xml
在中加入下面内容
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
配置yarn-site.xml文件,在中写入下面内容
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<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> #resourcemanager的标识符,用于下面的配置
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>node3</value> #配置担任resourcemanager的虚拟机
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>node4</value> #配置担任resourcemanager的虚拟机
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>node2:2181,node3:2181,node4:2181</value> #zookeeper搭建在那些虚拟机上
</property>
分发两个文件到:2,3,4节点
scp maprexxxx yarn-xxx node2:pwd
scp maprexxxx yarn-xxx node3:pwd
scp maprexxxx yarn-xxx node4:pwd
两个担任resourcemanager的节点之间互相免密钥
3节点 .ssh 目录下: ssh-keygen -t dsa -P ‘’ -f ./id_dsa //生成免密钥文件
cat ~id_dsa.pub >> authorized_keys //写入authorized_keys 文件中
scp id_dsa.pub root@node4:`pwd`/node3.pub //分发给node4节点,并修改免密钥文件为node3.pub
4节点 .ssh 目录下 :
cat node08.pub >> authorized_keys
ssh-keygen -t dsa -P ‘’ -f ./id_dsa
cat ~id_dsa.pub >> authorized_keys
scp id_dsa.pub root@node3:pwd
/node4.pub
3节点 .ssh 目录下:
cat node4.pub >> authorized_keys
到这里环境配置搭建完成,下面进行启动
1.启动zookeeper : zkServler.sh start 通过共享命令一起启动所有的zookeeper节点
2.启动hdfs,命令如下:start-dfs.sh ,如果NameNode1和NameNode2没有启动,需要在node1和node2中分别手动启动
3.启动nodemanager: start-yarn.sh
4:在node3和node4中分别执行脚本:yarn-daemon.sh start resourcemanager启动resourcemanager
注意:除个别情况需要在单个节点运行脚本外,上面启动前三步都在一个NameNode中进行,如NameNode2没有启动,需要在node1和node2中分别手动启动。否则在启动hdfs的NameNode节点中运行启动前三步即可
UI访问: resourcemanager节点IP : 8088可以访问
停止:
node1: stop-dfs.sh
node1: stop-yarn.sh (停止nodemanager)
node3,node4: yarn-daemon.sh stop resourcemanager (停止resourcemanager)