YARN的工作流程
Yet Another Resource Negotiator(另一种资源协调者)
Yarn功能上负责资源管理与程序调度,主要由两个核心模块构成由ResourceManager和NodeManager,其中R统揽全局核心,N负责管理每个计算机节点上的资源调度。
作业提交阶段:1
client申请计算资源应用,向集群提交jop,申请一个jop_id。
2.ResourceManager返回资源提交路径和jop _id,每个jop都有一个独一无二的id。
3.client收到ResourceManager的返回值后,根据返回这些返回数据的值发送Jar包切片信息和配置文件到指定的资源提交路径。
4.client提交完资源后向ResourceManager发送执行作业请求,ResourceManager收到这个请求后会根据这个Jar包创建ApplicationManager来管理这个Jar.
作业初始阶段:
5新提交的ApplicationManager将Jop 添加到ResoureSchedule中,也就是维护了一个队列,所有要执行的jop 都在这个队列中,等待执行,
6.当轮到jop工作时ResoureSchedule通知ApplicationManager有个NodeManger可以用来执行jop
7.ApplicationManager调用分配给 它的NodeManger开辟一个容器,在容器中启动对应需要被执行的jop的ApplicationMaster。
8ApplicationMaster获取HDFS上的文件,生成Task.
任务分配阶段:
9.ApplicationMaster向ResourceManager申请运行Task的任务资源。
10.ResourceManager将需要运行的Task任务分配给科学空闲的NodeManger,NodeManger分别领取任务并创建用于执行Task的容器
任务运行阶段:
11ApplicationMaster通知所有接收到Task的NodeManger启动计算
12NodeManger启动Task计算
13如果这批Task运行完后还有新的Task要运行,则向ResourceManager申请容器运行新的Task
14所有的jop执行完后ApplicationMaster申请注销自己
15最后更新计算的进度和状态