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 申请注销自己。