将YARN工作的机制分为五个阶段
1.作业提交阶段
2.作业初始化阶段
3.任务分配阶段
4.任务运行阶段
5.作业完成阶段
作业提交阶段:1-4
客户端向ResourceManager提交作业,并且请求申请一个JobId
客户端拿到ResourceManager返回的JobId后,会进行配置,然后根据ResourceManager提供路径向集群上传本次作业所需要资源(如;jar包,xml配置等)
作业初始化阶段:5-8
资源递交完毕后,客户端向ResourceManager申请运行一个AppMaster,ResourceManager接收到申请后会将申请转变成成一个JOB,并且将job放入作业调度队列中。
任务分配阶段:9-14
ResourceManger会根据各个NodeManager的CPU、内存使用情况,为队列中的Job分配节点。
任务执行阶段:
拿到作业后NodeManager会在自己的内部开启一个Container用于运行AppMaster,然后AppMaster会下载之前上传的资源。
AppMaster向ResourceManager索要资源用于运行MapTask或者ReduceTask,ResourceManager收到申请后会根据资源的使用情况通知其他NodeManager让他们在自己的内部开启容器,用于运行Task。
最后,作业执行完毕。