Hadoop-2.2.0学习之三YARN简介

来源:互联网 发布:大数据时代的到来 编辑:程序博客网 时间:2024/04/30 00:51

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、硬盘、网络等。在第一个版本中,resourceContainer 只包含了内存。

调度器有插件策略,负责在不同队列,应用程序之间分隔集群资源。当前的MapReduce调度器比如CapacityScheduler和FairScheduler有插件的例子可以参考。CapacityScheduler支持层次队列以允许更加可预测的分享集群资源。

应用程序管理器负责接受作业的提交,协调第一个容器用于执行特定于ApplicationMaster的应用程序,提供ApplicationMaster容器失败时的重启服务。

NodeManager是每台主机一个的框架代理,负责容器,监听资源(CPU,内存,硬盘,网络)的使用并报告给ResourceManager/Scheduler(调度器)。

每个应用程序的ApplicationMaster负责从调度器协商合适的资源容器,跟踪应用程序的状态和监控运行情况。

YARN包含了对之前稳定版本的API兼容性,也就是所有的MapReduce作业不需要做任何修改仅仅重新编译就可在YARN上运行。


0 0
原创粉丝点击