Yarn基本组成结构
Yarn基本组成结构
一、ResourceManager:
是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(ApplicationMaster)
1)调度器(Scheduler):将系统中的资源分配给各个正在运行的应用程序;
应用程序管理器(ApplicationMaster):负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源,以及启动ApplicationMaster、监控2)ApplicationMaster运行状态,并在失败时重新启动等;
二、ApplicationMaster:
用户提交的每个应用程序,均包含一个ApplicationMaster,主要功能包括:
1)与ResourceManager调度器协商以获取资源(以Container表示);
2)将得到的任务进一步分配给内部的任务;
3)与NodeManager通信以启动停止任务;
4)监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务;
三、NodeManager:
是每个节点上的资源和任务管理器。
1)它会定时向ResourceManager汇报本节点上的资源使用情况和各个Container的运行状态;
2)它接收并处理来自ApplicationMaster的Container启动/停止等各种请求;
四、Container:
是Yarn中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。它不同于MRv1中的slot,它是一个动态资源划分单位,是根据应用程序的需求动态生成的。