yarn-1

来源:互联网 发布:室内设计上海知乎 编辑:程序博客网 时间:2024/06/05 14:23

当意识到MR1的缺陷的时候,hadoop2.x对MR做出了改进,为了进一步的支持分布式和更大的数据,1.0版本中会出现扩展性,容错,持久性的问题提出了改进;创立的yarn资源管理框架,使hadoop的功能进了一大步,首先MR2不再是Jobtracker和taskTracker的单一聚集的交互,而是将jobtracker的功能分成了几大块,彻底的将串行的程序做成了事务驱动的组件形式的程序;

创建了ResourceManager来管理和分配调度所有资源,ApplicationMaster来管理应用程序,每个节点都分别有一个NodeManager来进行管理作业的停止和开启;

MR由三部分组成,分别是编程模型,数据处理引擎,运行时环境,MR1和MR2具有相同的编程模型和数据处理引擎,唯一不同的就是运行时环境,使用的YARN资源管理平台;

使MR变成了YARN的一个可插拔的组件,YARN还可以加载例如spark,storm等框架;还创建了HDFS Federation;

yarn使用的是基于事件驱动的一部编程模型,它通过事件将各个组件联系起来,并由一个中央异步调度器统一将各种时间分配给对应的事件处理器;在MRappMaster中,每种组件就是一个事件处理器,当MRAppMaster启动时,他会以服务的形式注册到MRAppMaster的中央异步调度器上高速他处理的事件类型;

RM是一个全局的资源管理器,负责整个系统的资源管理和分配,它主要是由两个组件构成的,调度器(scheduler)和应用程序管理器(ApplicationManager);

调度器根据容量,队列等限制条件(例如每个队列分配一定的资源,最多执行一定数量的作业;)将系统中的资源分配给正在运行的应用程序;资源分配单位时container,将所有各种资源封装到一块,从而限定每个任务使用的资源量;container也提供资源隔离;

应用程序管理器负责管理整个系统中所有的应用程序,包括应用程序的提交,和调度器协商资源以启动ApplicationMaster,监控Application Master运行状态;斌在失败是宠幸启动它;

AM

用户提交的每个应用程序都包含一个AM,主要功能包括:与RM调度器协调以获得资源(用container表示);

将得到任务进一步分配给内部任务;(划分小的任务粒度);

与NM通信以启动,停止任务;

监控所有任务运行状态,并在任务失败的时候为任务申请资源以重启任务;

NM

NM是每个节点上的资源和任务管理器,一方面它会定时向RM汇报本节点上的资源使用情况和各个Container运行状态,另一方面接受并处理来自AM的Container启动/停止等各种请求;

Container

Container是YARN中的资源抽象,它封装了某个节点的多维度资源(内存,cpu,磁盘,网络)当AM向RM申请资源时,RM为AM返回的资源便是用Container来表示的;YARN会为每个任务分配一个Container,该任务只能使用该Container中描述的资源,Container是动态生成的,而且使用了轻量级资源隔离机制Cgroups进行资源隔离;















原创粉丝点击