为了能够运行MapReduce程序,需要让各个NodeManager在启动时加载shuffle server,Reduce Task通过该server从各个NodeManager上远程拷贝Map Task产生的中间结果。在配置文件yarn-site.xml中添加以下内容。
12
3
4
5
6
7
8
9
10
11
12
13
14 <configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
配置MapReduce计算框架
为了利用MapReduce中的WordCount验证hadoop集群是否安装成功,需要为hadoop配置MapReduce计算框架。在配置文件mapred-site.xml中添加以下内容。
12
3
4
5
6
7 <configuration>
<property>
<!-- 指定yarn为MapReduce的资源调度平台 -->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置slaves
在配置文件slaves中添加以下内容。
slave1 slave2到这里为止,我们已经完成master机器上hadoop的配置,更多关于hadoop的配置参数说明请查看官方文档)左侧的Configuration一栏,下面我们要将master机器上所有的安装配置操作同步到集群中所有节点上,为了避免挨个节点的重复劳动,我们前面也设置好了ssh无密码登录,现在我们简单写几个脚本,完成同步安装操作。
同步配置首先同步/etc/hosts文件,这个需要切换到root用户下来完成,运行如下脚本:
12
3
4
5
6
7
8 #! /bin/bash
for SLAVE in `cat /home/hadoop/hadoop-2.2.0/etc/hadoop/slaves`; do
if test `expr match $SLAVE "*slave*"` -eq 0; then
rsync /etc/hosts $SLAVE:/etc/hosts
#清空防火墙配置
iptables -F
fi
done