1. 客户端往resourcemanager提交了job,resourcemanager中有一个ApplicationMaster管理所有的job,
-
然后ApplicationMaster会创建一个jobID和临时目录,返回一个job ID和工作临时目录给客户端
-
初始化job,然后在hdfs中创建工作目录,接收jar包 初始化配置 根据路径 数据计算任务切片,
-
返回给客户端ok
-
然后客户端向resourcemanager申请默认容器,来创建MRApplicationMaster,执行程序,
请求交给resourcemanager,然后resorcemanager交给自己内部的scheduler调度器(调度器管理集群中的所有运算资源),然后生成一个任务队列,
-
schedule会检测下面的nodemanager哪个能创建容器,
-
scheduler安排分配任务,然后各个nodenamager开始领取任务,领取任务后nodemanager开始创建自己的容器,nodemanager中的容器默认的时2G的内存,然后在容器中创建了一个MRAPPMT,开始去hdfs中进行下载 任务
-
然后nodemanager开始向resource进行申请3个maptask 2个reductask任务
-
然后scheduler分配了三个maptask和两个reducetask任务
-
开始各自领取自己的任务,领取几个任务创建几个容器
-
领取了各自的任务之后没有直接运行显示在自己的nodemanager中创建了yarnchild运行MR任务,然后MRAPPMT发送命令启动maptastk