YARN主要由 ResourceManager、 NodeManager、 ApplicationMaster和 Container等组件构成。
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 申请注销自己。



