前几篇讲到的都是关于hdfs的配置与搭建,但是要编写MapReduce,我们还需要搭建yarn
单节点伪分布式配置参考 http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/SingleCluster.html#YARN_on_Single_Node
下面,我们开始集群的yarn搭建,修改配置前请先停掉之前起的服务
stop-all.sh
节点分布配置
服务器 | NN | JN | DN | ZK | ZKFC | RM(ResourceManager) |
---|---|---|---|---|---|---|
hadoop004 | Y | Y | Y | |||
hadoop001 | Y | Y | Y | Y | Y | |
hadoop002 | Y | Y | Y | Y | ||
hadoop003 | Y | Y | Y |
1. mapred-site.xml,从mapred-site.xml.template拷贝
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
2. 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>zyf2yarn</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop002</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop003</value>
</property>
<property>
<!--配置zookeeper的地址-->
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop004:2181,hadoop001:2181,hadoop002:2181</value>
</property>
3. scp配置文件到各个服务器
4. 启动所有的服务
start-all.sh
5. 查看节点上的服务启动状态
你可能会发现 hadoop002和hadoop003上的resourcemamager并没有启动,据说是脚本的一个bug,于是,我们在对应的服务器上手动启动resourcemamager
yarn-daemon.sh start resourcemanager
6. jps再次查看各个节点上程序的启动状态
NN的服务器上会启动名为nodemanager的进程
7. 测试高可用
打开网页hadoop002:8088
和hadoop003:8088
,发现一个为active,一个为standby,会被立刻跳转到active的页面去,停掉active的resourcemanager
yarn-daemon.sh stop resourcemanager
重新浏览网页,发现active的无法访问,standby的变成了active