postbird

上篇文章写了如何配置hadoop-2.7.1的高可用集群(HA),但是只是写到了hdfs-site/core-site/zookeeper,也就是解决了namenode挂掉的情况,但是没有配置yarn和mapreduce。

yarn和mapreduce根据自己任务的复杂程度和需求,每个人配置不同,而hadoop的文档写的很详细这里只是简单记录一下。

hadoop-2.7.1 Yarn配置的相关文档地址:http://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.html

需要注意的是上面的文档应当着重看一下ResourceManagerHA的部分。

1、前提

这里的配置是参照之前的文章的配置继续写的,因此集群的设计也是和之前的设计是一样的(使用4台Centos-6.5-X64虚拟机,每台内存2G)。

上篇文章的地址:「HA」Hadoop-2.7.1高可用集群配置-http://www.ptbird.cn/hadoop-ha-qjm-config.html

根据上篇文章,我只是用了一个resourceManager在node1机器上,其他的三台机器都是dataManager。

2、Yarn-site.xml的配置

Yarn的配置我还没有参照文档或者是网上其他的复杂的配置,我就是简单的配了一下。

我的配置如下:

<!-- Site specific YARN configuration properties -->
<!-- Resource Manager Configs -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>node1</value>
    <!--配置yarn的resourcemanager的那台机器的hostname-->
</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>

3、mapred-site.xml的配置

mapred-site.xml的配置相对比较简单,只需要指定mapreduce的调度平台就可以了(也就是使用yarn管理和调度资源)

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

4、拷贝配置。

和之前的配置流程一样,因为使用的是集群,因此每次成功配置后,都应当将配置的文件拷贝到其他的节点机器上。

使用的是scp拷贝:

$ scp ./etc/hadoop/yarn-site.xml root@node2.hadoop.ptbird.cn:/mnt/modules/hadoop-2.7.1/etc/hadoop/
$ scp ./etc/hadoop/yarn-site.xml root@node3.hadoop.ptbird.cn:/mnt/modules/hadoop-2.7.1/etc/hadoop/
$ scp ./etc/hadoop/yarn-site.xml root@node4.hadoop.ptbird.cn:/mnt/modules/hadoop-2.7.1/etc/hadoop/
$ scp ./etc/hadoop/mapred-site.xml root@node2.hadoop.ptbird.cn:/mnt/modules/hadoop-2.7.1/etc/hadoop/
$ scp ./etc/hadoop/mapred-site.xml root@node3.hadoop.ptbird.cn:/mnt/modules/hadoop-2.7.1/etc/hadoop/
$ scp ./etc/hadoop/mapred-site.xml root@node4.hadoop.ptbird.cn:/mnt/modules/hadoop-2.7.1/etc/hadoop/

5、启动YARN

hadoop建议的启动方式是./start-dfs.sh ./start-yarn.sh,而不是之前的./start-all.sh

启动之后可以通过JPS查看进程:

node1的resourcemanager

postbird

node2的nodemanager

postbird

更多更复杂的配置可以参照文档详细配置和使用:

http://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

http://hadoop.apache.org/docs/r2.7.1/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

5、web地址

我没有在yarn上配置web的地址,默认的地址是http://node1.hadoop.ptbird.cn:8088 ,其中8088是默认的端口。

比较尴尬的就是貌似这个地址的web界面没有任何变化。

postbird