(job的提交):
客户端向resourcemanager提交job请求,申请资源。Resourcemanager向客户端返回一个job_id以及共享资源路径hdfs/tmp客户端将共享资源放在共享资源路径下(job.jar,job.xml,job.xml)。客户端向resourcemanager返回共享资源放置成功的响应,真正提交应用程序。Resourcemanager向客户端返回一个节点,运行MRAppMaster。Resourcemanager到对应节点启动MRAppMaster,先启动container后启动MRAppMaster。MRAppMaster会将这个job进行初始化,生成application_id,并生成当前job的工作簿,记录maptask和reducetask的进度和状态。MRAppMaster到共享资源下下载共享资源到本地。MRAppMaster向resourcemanager申请maptask和reducetask运行的资源,优先maptask。Resourcemanager向MRAppMaster返回对应的资源节点,maptask,数据的本地化;reducetask,随机。MRAppMaster到对应的节点启动maptask(先启动container)。Maptask会到共享资源路径下载共享资源。开始运行maptask任务。Maptask在运行过程中向MRAppMaster汇报自己的进度和状态。当MRAppMaster获取到一个节点上的所有maptask任务完成,启动reducetask。MRAppMaster到对应的节点启动container启动reducetask。Reducetask到共享资源路径下下载共享资源。所有的maptask执行完成,fetch完成,reducetask执行。Reducetask在运行期间向MRAppMaster汇报自己的进度和状态。当maptask和reducetask执行完成,MRAppMaster到对应的节点进行资源回收。所有的maptask和reducetask运行完成MRAppMaster向resourcemanager注销自己,释放资源。