YARN(资源调度器)知识总结
文章目录
1. YARN基础架构
YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container
等组件构成
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)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申请注销自己。