基本过程图:
-
Clinet向ResouceManager发送Job请求
-
ResouceManager接受到请求后在自身开启一个Container 来运行的ApplicationManager组件,ApplicationManager负责接下来的Job请求。
-
ResourceManager(ApplicationManager)分配一个有闲置资源的NodeManager,由该NodeManager启动一个Container,并从HDFS上拷贝Job资源,然后运行ApplicationMaster作为本次Job的主节点。
-
ApplicationMaster向ResourceManager(AppMgr)进行注册,注册之后Clinet就可以查询ResourceManager获得自己ApplicationMaster的详细信息,以后就可以和自己的ApplicationMaster直接交互。
-
ApplicationMaster计算本次Job所需要的计算资源并向ResouceManager(ApplicationManager)请求资源路径。
-
ResouceManager(ResourceScheduler)返回封装好的资源
-
ApplicationMaster根据返回的资源将向各个NodeManager发送任务,开启Container,然后将 Map Task分发到各个Container中运行。
-
ApplicationMaster实时监控各个MapTask的完成情况,当所有MapTask都完成后,重复5-7开始运行Reduce Task。(Reducer和Mapper不在同一个Container)
-
Job完成后,ApplicationMaster向ApplicationsMgr申请注销自己。