MR的执行流程从大的步骤上大致分为三大步:
一、AM(applicationMaster)的启动
1.Client客户端向RM提交job任务申请,RM对任务进行检查,检查无问题后,向客户端返回作业文件的上传路径和jobid;
2.客户端根据返回的路径将作业文件上传至HDFS,待准备就绪后向RM提交开启任务申请,RM开启一个container并与对应的NodeManager建立通信,在该container中启动AM(applicationMaster).
二、AM向RM(ResouceManager)申请资源并启动任务
1.AM启动后,向RM进行注册,这样客户端可以通过RM查看job的详细运行情况,AM根据客户端提交的任何通过轮寻方式向RM申请启动任务所需要的资源。
2.AM申请到资源后,与对应的NodeMananger建立RPC通信,要求各NM开启任务;
3.NodeMananger为任务设置好运行环境(包括环境变量、jar包、二进制文件等),并将启动命令保存为启动脚本,执行启动脚本开启任务
4.任务执行过程中,NM向AM汇报汇报任务的状态和进度,以让MRAppMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在应用程序运行过程中,用户可随时通过RPC向MRAppMaster查询应用程序的当前运行状态;
三、AM向RM注销和关闭自己
1.任务程序执行完成后,AM向RM注销并关闭自己