YARN(资源调度器)知识总结

1. YARN基础架构

YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成
YARN(资源调度器)知识总结

1.1ResourceManager主要作用

1、接收和处理客户端的请求

2、管理NodeManager

3、启动和管理ApplicationMaster

4、分配和调度资源

1.2NodeManager主要作用

1、管理单节点的资源

2、处理来自ResourceManager的命令

3、处理来自ApplicationMaster的命令

1.3ApplicationMaster主要作用

1、负责数据的切分。

2、为应用程序申请资源并分配给内部的任务

3、任务的监控和容错。

1.4 Container主要作用

Container是yarn中的资源抽象,它封装了某个节点上的多维度资源,如CPU、内存、网络、硬盘等

2.YARN的工作机制

  1. 图解
    YARN(资源调度器)知识总结
  2. 工作机制详解
    (1)MR程序提交到客户端所在的节点。
    (2)YarnRunner向ResourceManager申请一个Application。
    (3)RM将该应用程序的资源路径返回给YarnRunner。
    (4)该程序将运行所需资源提交到HDFS上。
    (5)程序资源提交完毕后,申请运行mrAppMaster。
    (6)RM将用户的请求初始化成一个Task。
    (7)其中一个NodeManager领取到Task任务。
    (8)该NodeManager创建容器Container,并产生MRAppmaster。
    (9)Container从HDFS上拷贝资源到本地。
    (10)MRAppmaster向RM 申请运行MapTask资源。
    (11)RM将运行MapTask任务分配给另外两个NodeManager,另两个NodeManager分别领取任务并创建容器。
    (12)MR向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动MapTask,MapTask对数据分区排序。
    (13)MrAppMaster等待所有MapTask运行完毕后,向RM申请容器,运行ReduceTask。
    (14)ReduceTask向MapTask获取相应分区的数据。
    (15)程序运行完毕后,MR会向RM申请注销自己。