MapReduce在hadoop-0.23版本中进行了完全的检查修改,并发展为了现在称之为的MapReduce2.0(MRv2)或者YARN。YARN的基本想法是将JobTracker的两个主要功能资源管理和作业调度监控分开为独立的后台进程,目标是拥有一个全局ResourceManager (RM)和每个应用程序一个的ApplicationMaster (AM)。一个应用程序或者是从经典MapReduce作业角度来看的一个单独作业,或者是这种作业的一个有向无环图(DAG)
ResourceManager和从节点的NodeManager(NM)组成了数据计算框架,ResourceManager是协调系统中所有应用程序之间资源的最终权威。事实上,ApplicationMaster是框架特定的类库,任务是从ResourceManager协调资源以及同NodeManager一起工作进行任务的执行和监控。下图为YARN的架构示意图。
ResourceManager有两个主要的组件:调度器(Scheduler)和应用程序管理器(ApplicationsManager)。
调度器负责在各种运行的,受制于计算机容量、队列等约束条件的应用程序之间分配资源。调度器在某种意义上是纯的调度器,因为它不监控或者跟踪应用程序的状态,并且不提供重启失败任务的保证,无论任务失败是由于应用程序还是硬件问题。调度器在应用程序对资源的需求基础上执行调度功能,这样做是基于resourceContainer 的抽象概念,resourceContainer 整合了内存、CPU、硬盘、网络等。在第