前两篇中,我们了解了MapReduce的执行流程及其架构实现,今天我们就在本地通过经典实例WordCount来了解一下MapReduce的编程实现
YARN集群配置
-
首先我们按照大数据之四 hadoop HDFS HA 高可用的完全分布式搭建好集群环境,jps检查无误
-
关闭所有节点上的HDFS相关进程
stop-dfs.sh
- 配置mapred-site.xml文件(
cp mapred-site.xml.template mapred-site.xml
)
<!-- MapReduce的架构体系,这里使用MapReduceV2,即YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- 配置yarn-site.xml文件
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value> <!-- 启用RM的高可用 -->
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster1</value> <!-- YARN对外提供的服务的id -->
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value> <!-- 实现RM高可用的节点id -->
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>node01</value> <!-- rm1对应的真实节点 -->
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>node02</value> <!-- rm2对应的真实节点 -->
</property>
<!--配置三台zookeeper的位置信息 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>node02:2181,node03:2181,node04:2181</value>
</property>
- 将配置完成的hadoop安装包发送到其他节点,覆盖之前的安装包,也可以先删除之前的安装包
scp -r hadoop-2.6.5 root@node02:/opt/zgl/
scp -r hadoop-2.6.5 root@node03:/opt/zgl
scp -r hadoop-2.6.5 root@node04:/op