MapReduce集群搭建
概述
MapReduce运行在Hadoop集群上。但MapReduce是通过另外一批进程来运行的。HDFS的进程名是NameNode、SecondaryNameNode和DataNode;而MapReduce的进程名(可以通过JPS命令查看)是:
ResourceManager:数据计算资源的总体管理者,地位相当于NameNode。
NodeManager:执行计算的节点,地位相当于DataNode。
注意:ResourceManager和NameNode可以不在同一个机器上。
MapReduce通过Yarn运行的,所以在执行MapReduce之前需要启动yarn。
设置yarn环境
如果安装JDK时正确设置了JAVA_HOME环境变量,则这一步可忽略。
/usr/local/hadoop/etc/hadoop在yarn-env.sh中,找到# export JAVA_HOME=…
将这一行开头的#注释符去掉
然后设置为正确的JAVA安装位置
本配置及以下配置都先在NameNode上配好,然后分发到各个节点上。
MapReduce配置
/usr/local/hadoop/etc/hadoop中
复制mapred-site.xml.template生成mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
/usr/local/hadoop/etc/hadoop修改mapred-site.xml,添加以下3个配置项
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
第1个配置指定让yarn管理mapreduce任务
第2、3个指定任务历史记录端口
yarn配置
在/usr/local/hadoop/etc/hadoop中打开yarn-site.xml,添加
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
这里表示yarn存放在master,这里value中的值填什么yarn就在那里
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
第1个指定ResourceManager在哪个机器上
第2个指定shuffle服务
将etc/hadoop目录复制到各个节点
略(推荐使用hadoop-push.sh脚本)
启动
执行start-yarn.sh命令(在这之前确保HDFS已经启动,没有启动的先start-dfs.sh)。
执行成功后,通过JPS检查ResourceManager、NodeManager是否启动。
如果启动成功,通过master:8088可以打开MapReduce“应用”站点:
注意:需要配置本地Windows系统的hosts文件才能在本地使用主机名!