【翻译】YARN Architecture

URI:

http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html

Breadcrumb Navigation

Apache > Hadoop > hadoop-yarn > Apache Hadoop 2.1.1-beta

Title:

Apache Hadoop NextGen MapReduce(YARN)

 

 

hadoop0.23版本中,MapReduce相比原先有了一个完全的颠覆,现在我们有了称作MapReduce 2.0(MRv2)YARN

 

MRv2最核心的概念是,将JobTrack中两个最重要的功能resource managementjob scheduling/monitoring分隔开,形成不同的守护进程。由此概念产生了一个全局的ResourceManager(RM)per-application(每个application一个的) ApplicationMaster(AM)。一个applicationMap-Reducejobs传统场景中的一个job,或者jobs的一个DAG(Directed Acyclic Graph有向无环图)

 

ResourceManagerper-node slaveNodeManager(NM)形成了data-computation framework。在系统所有application的资源分配上,ResourceManager拥有最高权限。

 

Per-application ApplicationMaster实际上是一个framework specific library,同时它的任务是调度从ResourceManager分配下来的资源,并且同NodeManager(s)一起工作来执行并监控tasks


【翻译】YARN Architecture


ResourceManager有两个主要的组件:SchedulerApplicationsManager

 

The Scheduler is responsible for allocating resources to various running applications subject to familiar constraints of capacities, queues etc[J1] . Scheduler只用于调度的场景,它不会监控或者追踪application的状态。同样的,它不能够在由于application或硬件失败导致task失败后重启taskScheduler基于applications对于resource的需求来履行他的调度功能;它基于一个resource Container的抽象概念,container由各种资源组成,如内存、cpu、磁盘、网络等。在开始的版本中,支持内存。

 

Scheduler有一个可插拔的plug-in,它的作用是为各种queuesapplications等等分割集群的resources。当前的Map-Reduce scheduler比如CapacitySchedulerFairScheduler就是这样的例子。

 

The CapacityScheduler supports hierarchical queues to allow for more predictable sharing of cluster resources.

 

ApplicationsManager负责接收job的提交,分配初始的container来执行特定ApplicationMasterapplicationprovides the service for restarting the ApplicationMaster container on failure.

 

NodeManager是一个per-machine framework agent,它的作用是监控containersresource(cpu, 内存,磁盘,网络),并如实reportResourceManager/Scheduler

 

Per-application ApplicationMaster 的责任是把从Scheduler得到的资源组合成适当的resource container,追踪它们的状态并监控其过程。

 

MRv2API与上一个版本(Hadoop-0.20.205)是向下兼容的。这意味着所有原有的Map-Reduce jobs只需要重新编译一下应该就可以不加修改运行在MRv2上。





你可能感兴趣的:(hadoop,yarn)