YARN基本构成
Master/Slave组成,1个ResourceManager对应多个NodeManager;
YARN由Client、ResourceManager、NodeManager、ApplicationMaster组成;
Client向ResourceManager提交任务、杀死任务等;
ApplicationMaster由对应的应用程序完成;每个应用程序对应一个ApplicationMaster,ApplicationMaster向ResourceManager申请资源用于在NodeManager上启动相应的Task;
NodeManager向ResourceManager通过心跳信息:汇报NodeManager健康状况、任务执行状况、领取任务等;
ResourceManager
1、处理客户端的请求(启动/杀死应用程序);
2、启动/监控ApplicationMaster;一旦某个AM挂了之后,RM将会在另外一个节点上启动该AM;
3、监控NodeManager;一旦某个NM挂了,标志下该NM上的任务,来告诉对应的AM如何处理;
4、整个系统的资源分配和调度;
NodeManager:
1、定时向ResourceManager汇报本节点上的资源使用情况和各个Container的运行状态;
2、接收并处理来自ResourceManager的Container启动/停止的各种命令;
3、处理来自ApplicationMaster的命令;
4、单个节点上的资源管理;
ApplicationMaster:
1、数据切分;
2、为应用程序/作业向ResourceManager申请资源(Container),并分配给内部任务;
3、与NodeManager通信以启动/停止任务;
4、任务监控和容错(在任务执行失败时重新为该任务申请资源以重启任务);
Container
对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息;
YARN工作原理
以YARN为核心的生态系统
在引入YARN之后,可以在YARN上运行各种不同框架的作业。
Hadoop2.0构成之YARN