本文主要介绍了在实验环境下,能使YARN(以CDH4为例,Apache版本安装方法类似)正常工作的最简单的配置部署方法。
1. 准备
首先你需要准备一台或多台服务器,同Hadoop 1.0一样,你需要安装JDK,利用ssh设置免密码登录,在此不具体介绍。
2. 安装
接下来,你可从 http://archive.cloudera.com/cdh4/cdh/4/下载最新版的CDH4,然后解压后,修改以下几个配置文件:
(1) 设置环境变量
在${HADOOP_HOME}/etc/hadoop/hadoop-env.sh中,添加JAVA安装目录:
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
(2) 修改mapred-site.xml
在${HADOOP_HOME}/etc/hadoop/下,将mapred-site.xml.templat重命名成mapred-site.xml,并添加以下内容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>file:/data/yarn/mapred/system</value>
<final>true</final>
</property>
<property>
<name>mapred.local.dir</name>
<value>file:/data/yarn/mapred/local</value>
<final>true</final>
</property>
</configuration>
【解释】相比于Hadoop1.0,用户无需再配置mapred.job.tracker,这是因为JobTracker已变成客户端的一个库,他可能被随机调度到任何一个slave上,也就是它的位置是动态生成的。需要注意的是,在该配置文件中需用mapreduce.framework.name指定采用的框架名称,默认是将作业提交到MRv1的JobTracker端。
(3) 修改core-site.xml
在${HADOOP_HOME}/etc/hadoop/中,修改core-site.xml,为了简单,我们仍采用Hadoop1.0中的HDFS工作模式(不配置HDFS Federation):
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://YARN001:8020</value>
<final>true</final>
</property>
</configuration>
(4) 修改yarn-site.xml
在${HADOOP_HOME}/etc/hadoop/中,修改yarn-site.xml:
<configuration>
<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程序,需要让各个NodeManager在启动时加载shuffle server,shuffle server实际上是Jetty/Netty Server,Reduce Task通过该server从各个NodeManager上远程拷贝Map Task产生的中间结果。上面增加的两个配置均用于指定shuffle serve。
(5) 修改slaves
在slaves文件中添加你的节点ip或者host:
YARN001
如果有多个NodeManager,可一次添加到该文件中,每个占一行。
(6) 启动HDFS
你可以使用以下命令分别启动NameNode和DataNode:
bin/hadoop namenode -format
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode(如果有多个datanode,需使用hadoop-daemons.sh)
或者一次启动:sbin/ start-dfs.sh
(7) 启动YARN
你可以使用以下命令分别启动ResourceManager和NodeManager:
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager(如果有多个datanode,需使用yarn-daemons.sh)
或者一次启动过:sbin/start-yarn.sh
(8) 检查是否运行成功
打开浏览器,输入: http://yarn001:8088
(9) 运行应用程序
通常而言,我们会运行examples中的最简单的作业—sleepjob,但CDH已将之移除,我们可运行另外一个很简单的作业—pi:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.0.0-cdh4.1.1.jar pi 20 10
界面截图(点击图片查看大图):
ResourceManager主界面:
MapReduce Application Master界面:
Map Task运行状况:
某个Node上各个Container状态:
3. 总结
在启动YARN时,最好手工顺次启动各个服务,并通过jps命令查看服务是够启动成功,如果不成功,则在安装目录下的logs文件夹中查看相应的日志以发现原因。
原创文章,转载请注明: 转载自 董的博客
本文链接地址: http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-install/
作者: Dong,作者介绍: http://dongxicheng.org/about/
Copyright © 2012