1,客户端向 Yarn 集群提交应用程序,即job。
2,ResourceManager 进程和 NodeManager 进程进行通信,根据集群的资源情况,分配第一个 Container 给集群的某个 NodeManager,NodeManager 启动 Container。
3,ResourceManager 将 MapReduce ApplicationMaster 分发到刚才启动的 Container 上,并在容器中启动。
4,MapReduce ApplicaitonMaster 启动之后立刻向 ResourceManager 注册,并且为 MapReduce 程序申请资源。
5,MapReduce ApplicationMaster 申请到容器之后立刻和对应的 NodeManager 通信,将用户的 MapReduce 程序分发到对应的 Container 中运行,这里运行的就是 Map 进程或者 Reduce 进程。
6,Map 或者 Reduce 任务在运行期间会向 MapReduce ApplicationMaster 进行通信,汇报自己的运行状态,如果运行结束,MapReduce Application 会向 ResourceManager 注销并释放所有的容器。