Hadoop-2.2.0中文文档——Apache Hadoop 下一代 MapReduce (YARN)


MapReduce在hadoop-0.23中已经经历了一次完全彻底地大修,就是现在我们叫的MapReduce 2.0 (MRv2) or YARN.

MRv2的基本思想是把JobTracker分成两个主要的功能,资源管理和工作调度/监控,变成独立的进程。有一个全局的ResourceManager (RM)和每个应用的ApplicationMaster (AM)。一个应用要么是一个典型的Map-Reduce工作,要么是工作的DAG。ResourceManager 和 每个从节点, NodeManager (NM),构成数据计算框架。在系统中的所有应用中,ResourceManager 有权分配资源。

每个应用 ApplicationMaster 实际上是一个指定库和协调ResourceManager和NodeManager(s)去执行和监控任务的框架。




ResourceManager 有两个主要的组件:Scheduler 和 ApplicationsManager.


 Scheduler 负责分配限定的空间、队列资源给运行中的应用。Scheduler 是一个纯调度器,不去监控或跟踪应用的所有状态。还有,对于失败任务或硬件失败,它不保证重启。 Scheduler 基于应用的资源要求执行它的功能;它这样做是基于包含了如内存,cpu,硬盘,网络等的资源Container,。在第一版中,只支持内存。


 Scheduler 有一个可插入式的插件策略,负责在集群资源中分割各类队列,应用等。当前的Map-Reduce调度器如 CapacityScheduler 和 FairScheduler 就是这种插件的例子。


CapacityScheduler 支持层级队列 允许更可靠的集群资源共享。

 ApplicationsManager 负责接受工作提交,协调第一容器来执行指定的ApplicationMaster 应用,并且ApplicationManager容器失败时提供重启的服务。

 NodeManager 是每台机器框架客户端,负责管理容器的资源使用(cpu,内存,硬盘,网络),并报告给 ResourceManager/Scheduler.

每个应用 ApplicationMaster 负责从Scheduler 协调合适的资源容器,监控他们的状态并管理流程。

MRV2 维护与之前的版本 (hadoop-0.20.205)间的 API 兼容性 . 这意味着所有的 Map-Reduce jobs 一次编译后就可以在MRv2上执行。


相关内容