处理过程:
1.mp程序产生RunJar进程向resource manager申请执行一个job
2.resource manager返回job相关资源提交的路径staging-dir和为本job生成的jobID
3.mp程序向HDFS提交资源到对于的staging-dir路径下
4.mp程序向resourcemanager反馈提交结果
5.resourcemanager将job加入任务队列中,并指定此job分配到哪些node manager去执行任务,node manager通过心跳机制与resource manager保持通信。
6.node manager去检查resource manager的任务队列,如果发现新的job则领取任务。
7.YARN框架为每个node manager为此任务分配资源(CPU,内存),产生一个container运行资源容器。
8.YARN框架仅仅是为job分配资源,并不知道程序如何运行,而job程序需要MapReduce运行。因此resource manager 启动MRAppMaster。
9.MRAppMaster向resource manager进行注册。
10.MRAppMaster 在 container运行资源容器中生成map task(yarnChild进程),启动MapReduce程序,并监控运行情况。
11.当 map --> shuffle 完成后,MRAppMaster 在 container运行资源容器中生成reduce task进程
12.job完成后向resourcemanager注销自己,释放资源