Yarn伪分布式部署
本人采用hadoop版本为 hadoop-2.6.0-cdh5.7.0。
Yarn详细配置信息官方地址如下:
http://hadoop.apache.org/docs/r2.7.5/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation
1 Yarn伪分布式部署
You can run a MapReduce job on YARN in a pseudo-distributed mode by setting a few parameters and running ResourceManager daemon and NodeManager daemon in addition.
The following instructions assume that 1. ~ 4. steps of the above instructions are already executed.
Configure parameters as follows:etc/hadoop/mapred-site.xml:
mapreduce.framework.name yarn etc/hadoop/yarn-site.xml: yarn.nodemanager.aux-services mapreduce_shuffle Start ResourceManager daemon and NodeManager daemon:$ sbin/start-yarn.sh
Browse the web interface for the ResourceManager; by default it is available at:
ResourceManager - http://localhost:8088/
Run a MapReduce job.
When you’re done, stop the daemons with:
$ sbin/stop-yarn.sh
2 组件介绍
YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等几个组件构成。
YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave,ResourceManager负责对各个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManger启动可以占用一定资源的任务。由于不同的ApplicationMaster被分布到不同的节点上,因此它们之间不会相互影响。
3 YARN三种调度器
应用对YARN资源的请求应该立刻得到满足,但是实际环境中资源有限,一个应用资源的请求可能要等待一段时间才能得到相应的资源。在YARN中,负责应用资源分配的是Schedule,对于调度,其本身就是一个难题。YARN中提供了三种可以选择的调度器:FIFO Schedule、Capacity Schedule、FairSchedule,其对比图如下图所示。
FIFO Schedule:也可称为队列调度器,简单的理解所提交的job一个一个完成。
Capacity Schedule(默认):简单理解就是会额外空出一部分资源,专门用于完成一些小的job,但是若没有相关任务,则这个资源就会一直占用,容易造成资源浪费。