MR在Yarn上的运行流程

图片与文本有略微出入

 1.客户端向ResourceManager提交job申请
2.ResourceManager根据申请内容返回相关信息(例:根据input的路径,返回对应的文件元数据信息,还有job资源的提交路径)
3.客户端根据返回的信息生成资源文件(job.split,conf.xml,app.jar)并将资源文件提交至hdfs(job的初始化)
4.资源提交完后(初始化完毕),客户端提交运行命令请求,向yarn中的Scheduler申请资源(根据当前yarn的调度模式进行调度)
5.调度器Scheduler将申请资源任务生成一个task放入queue任务队列中.
6.NameManager从队列中领取任务,创建容器contauner,会在容器中创建任务对象(MRAppMaster),并有jobId
7.任务对象向hdfs拿取工作目录的数据信息,解析任务切片和reucetask,分析出job中有几个task
8.任务对象向ResourceManager申请资源
9.调度器再次将申请资源工作生成task,放进queue队列中
10.NameManager开始从任务队列中领取自己的任务,随之生成容器
11.并在容器中生成新的对象YarnChild,YarnChild从MRAppMaster中拉取jar包文件,解析读取,在容器中生成maptask.
12.由MRAppMaster发送任务执行指令,多个maptask执行
13.多个任务向MRAppMaster汇报自己的任务进度
15.MRAppMaster向ResourceManager发送整体任务进度,且如果有任务失败,再次申请资源.
16.当Maptask任务执行完毕,Reduce任务也会被领走,生成YarnChild对象,执行11,12,13步骤
17.所有task运行完后回收资源
17.1 先回收YarnChild对象,释放对应Task容器
17.2 回收MRAppMaster对象
17.3 回收初始容器
17.4 清理工作目录

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值