一、客户端向Yarn提交一个程序application(包含程序主体applicationMaster和程序启动命令)web
二、ResourceManager接收请求后会在集群中寻找一个NodeManager并分配一个Container,与对应的NodeManager通讯(rpc通讯)并要求container启动applicationMaster;app
三、applicationMaster向ResourceManager注册(这样就能够经过yarn的web界面查看任务运行状态),分布式
四、根据任务信息向ResourceManager申请资源(Container);spa
五、因为是分布式计算,因此applicationMaster申请到资源后会向另外的NodeManager节点和本身的NodeManager节点rpc通讯并启动container(运行MapTask和ReduceTask),每一个container里面的Task时刻向applicationMaster 汇报( rpc通讯)本身运行的状态和进度,为了防止任务失败能及时重启。3d
六、当任务运行完成,ApplicationMaster会向ResourceManager注销并关闭本身。blog