Yarn的执行流程及常见问题

Q1、Yarn支持的调度器和硬件资源种类?

YARN自带了三种常用的调度器,分别是FIFO,Capacity Scheduler和Fair Scheduler
FIFO先进先出,按提交顺序执行
Capacity:计算能力调度器,根据任务大小进行手动配置资源
Fair:公平调度器,集群中的所有job平均分配资源。
第一个是默认的调度器,它属于批处理调度器,而后两个属于多租户调度器,它采用树形多队列的形式组织资源,更适合公司应用场景
YARN支持内存和CPU两种资源类型的管理和分配:YARN对内存资源和CPU资源采用了不同的资源隔离方案。对于内存资源,为了能够更灵活的控制内存使用量,YARN采用了进程监控的方案控制内存使用,即每个NodeManager会启动一个额外监控线程监控每个container内存资源使用量,一旦发现它超过约定的资源量,则会将其杀死;对于CPU资源,则采用了Cgroups进行资源隔离

Q2、Yarn作业执行流程

1.client向resourcemanager(以下简称rm)提交job命令
2.rm为该job在一个nodemanager上分配一个Container,这个nodemanager在Container中启动MRAppMaster
3.MRAppMaster向rm申请资源,启动maptask和reudcetask
4.rm向MRAppMaster返回maptask和reudcetask对应的节点
5.MRAppMaster到对应的节点上分别启动maptask任务、reducetask任务
6.maptask和reducetask向MRAppMaster汇报运行进度和状态,以让 MRAppMaster 随时掌握各个任务的运行状态,从而可以在任务败的时候重新启动任务。在运行完成后,MRAPPMaster向rm注销自己并回收资源

Q3、job提交过程

1.客户端向rm发送提交job的请求
2.rm向客户端返回一个application_id和一个共享资源路径 hdfs路径,用户用于提交共享资源的
共享资源路径:/tmp/hadoop/staging…
3.客户端将共享资源放在共享资源路径下
共享资源:
job.jar 程序
job.split 切片信息
job.xml 配置文件信息
4.客户端向rm返回响应(共享资源放置完成),真正的提交job
5.rm为这个job分配一个节点,并在这个节点上启动MRAPPMaster(先启动container)
6.MRAPPMaster初始化这个job并生成了这个job的工作簿
工作簿:记录maptask treducetask进度和状态
7.MRAPPMaster到共享资源路径下载共享资源
获取maptask(切片)和reducetask(job.xml)的个数
8.MRAPPMaster向rm申请资源 优先申请maptask的资源
采用的rpc通信 轮询式申请
9.rm向MRAPPMaster返回资源节点
10.MRAPPMaster到对应的节点上启动maptask任务,先启动container
11.maptask到共享资源路径下下载共享资源 (应用程序)
12.maptask开始执行
13.maptask向MRAPPMaster汇报自己的状态和进度
14.MRAPPMaster获取到有一个maptask运行完成 到reducetask的节点启动reducetask任务,先启动container
15.reducetask到共享资源路径下下载共享资源
16.reducetask开始执行
17reducetask在执行的过程中会向MRAPPMaster汇报自己的进度和状态
18.当maptask reducetask执行完成的时候 MRAPPMaster会回收对应节点上的资源
19.所有的maptask reducetask运行完成,MRAPPMaster向rm注销自己并回收资源

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值