它由Container、ResourceManger、NodeManager、ApplicationMaster几个主要部分组成。

Container(容器)
YARN中的资源包括内存、CPU、磁盘输入/输出等。Contianer是YARN中的资源抽象,它封装了某个节点上的多维资源。YARN会为每个任务分配Container。
ResourceManager(资源管理器)
ResourceManager负责整个系统的资源分配和管理,是一个全局的资源管理器,主要由两个组件构成:调度器(Scheduler)和应用程序管理器(ApplicationManager)。调度器根据资源情况为应用程序分配封装在Container中的资源。应用程序管理器负责管理整个系统中的所有应用程序。
NodeManager(节点管理器)
NodeManager是每个节点上的资源和任务管理器。它定时向ResourceManager汇报本节点上的资源使用情况和各个Container的运行状态,接受并处理来自ApplicationManager的Container启动/停止等请求。
ApplicationMaster(主应用)
ApplicationMaster是一个详细的框架库,它结合从ResourceManger获得的资源与NodeManager协同工作,来运行和监控任务
用户提交的每一个应用程序均包含一个ApplicationMaster。其主要功能包括以下三点:
(1) 与ResourceManager调度器协商以获取抽象资源(Contianer)。
(2) 负责应用的监控,跟踪应用执行状态,重启失败任务等。
(3) 与NodeManager协同工作完成任务的执行和监控。
YARN中应用运行的机制如图

ApplicationMaster将收集的进度和状态进行统计,汇聚成作业视图。客户端可以从ApplicationMaster获取状态,从而获取集群的进度情况

本文作者:Dewar
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!