MR程序在YARN上的生命周期

  1. 将main方法中的job提交到resourcemanager(RM)中
  2. resourcemanager 返回其一个jobID和工作目录
  3. 初始化job(①在HDFS中创建一个带有jobID的工作目录②初始化配置在job.xml文件中③上传jar包④计算任务切片)
  4. 启动程序(到RM中有一个applicationmaster(AM)负责的全部job中找到其相对应的jobID,然后JOB会去找scheduler(调度器)去申请一个默认容器[1c,1.5G],然后调度器生成调度任务(去nodemanager(NM)创建容器)放到一个队列中)
  5. 调度器scheduler生成调度任务
  6. scheduler调用NM去创建程序初始容器
  7. NM(MRappmaster)去下载程序执行所必须的内容(job.xml,job.jar,splits[ ])缓存到本地中
  8. MRAppMaster向RM发出申请根据splits申请资源(容器 5mt,2rt),RM将发送过来的申请资源发送给调度器scheduler>> 任务队列[mt1,mt2,mt3,mt4.mt5,rt1.rt2 ]
  9. 集群中的NM向任务队列中领取属于自己的任务 先领取mt
  10. 创建一个container容器 初始化一个yarnchild(YC)对象 运行mt任务(并行的由MRappmaster发送指令使集群中每一个容器中的YC运行自己的mt)
  11. 每个程序在运行中都会向MRappmaster汇报任务进度
  12. MRappmaster向RM汇报整体的任务进度,及时对小任务执行失败后再调度(RM>>调度器>>放回任务队列再分配)
  13. NM继续领取rt任务
  14. RM创建容器运行rt 同第10步
  15. 汇报任务进度 同11步,12步
  16. 当mt和rt都执行完毕 MRappmaster向RM汇报任务执行成功
  17. 释放task任务 释放yarnchild对象 释放容器
  18. 回收资源
  19. 释放AppMaster对象 释放资源
  20. 删除工资目录

MR在yarn上的生命周期

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值