MR程序在yarn上的运行流程说明.

MR程序在yarn上的运行流程说明._第1张图片1. 客户端往resourcemanager提交了job,resourcemanager中有一个ApplicationMaster管理所有的job,

  1. 然后ApplicationMaster会创建一个jobID和临时目录,返回一个job ID和工作临时目录给客户端

  2. 初始化job,然后在hdfs中创建工作目录,接收jar包 初始化配置 根据路径 数据计算任务切片,

  3. 返回给客户端ok

  4. 然后客户端向resourcemanager申请默认容器,来创建MRApplicationMaster,执行程序,

请求交给resourcemanager,然后resorcemanager交给自己内部的scheduler调度器(调度器管理集群中的所有运算资源),然后生成一个任务队列,

  1. schedule会检测下面的nodemanager哪个能创建容器,

  2. scheduler安排分配任务,然后各个nodenamager开始领取任务,领取任务后nodemanager开始创建自己的容器,nodemanager中的容器默认的时2G的内存,然后在容器中创建了一个MRAPPMT,开始去hdfs中进行下载 任务

  3. 然后nodemanager开始向resource进行申请3个maptask 2个reductask任务

  4. 然后scheduler分配了三个maptask和两个reducetask任务

  5. 开始各自领取自己的任务,领取几个任务创建几个容器

  6. 领取了各自的任务之后没有直接运行显示在自己的nodemanager中创建了yarnchild运行MR任务,然后MRAPPMT发送命令启动maptastk开始执行任务

  7. Maptask三个任务会向MRAOOMT汇报整体进度

  8. maptask完成之后开始在reducetask,然后先初始化yarnchild对象,在yarnchild开始运行reducetask任务

  9. 然后reduce向MrAppMaster汇报自己的任务进度

  10. MrAPPMaster向resourcemanager汇报整体任务进度

  11. 任务成功之后,开始释放资源

  12. 释放yarnchild先回收maptask容器,reducetask容器

  13. 释放MRAPPMT容器

  14. 整个任务推出

你可能感兴趣的:(hadoop)