Yarn的执行流程以及三大调度策略

简介

Yarn是一个通用的资源管理和任务调度平台

执行流程

  1. 客户端请求ResourceManager,执行某个程序(可能是MR程序,可能是Spark程序, Flink程序)
  2. 因为RM只负责接收任务,具体的任务监控动作是由AppMaster来维护和管理的,所以RM会在某个NodeManager上创建AppMaster进程(代码级别),用于监控和管理该任务的执行
  3. AppMaster通过和RM的心跳机制,获取到该任务具体的信息
  4. AppMaster计算该任务执行所需的全部资源,然后向RM申请,RM会根据AppMaster的申请,返回其所需要的资源,可能是全部资源,也可能是所需要的部分资源,但至少也要返回执行MapTask任务所需要的资源,后续资源再不断逐步分配
  5. 因为RM管理的是整个Yarn集群的资源,而NM管理的是本机的资源,所以AppMaster需要和每一个贡献出(该任务所需)资源的NM节点进行连接(交互)
  6. NM管理本机的资源,创建出资源容器(Container容器),用于执行具体的计算任务
  7. (该计算任务的)所有Container容器,都会实时把自己的计算进度和结果反馈给AppMaster, 由AppMaster做统一管理和调度
  8. AppMaster把该任务的具体执行结果告知RM,至此,该计算任务执行完毕.紧接着AppMaster会启动自毁程序,告知RM关闭和释放该执行任务所有的Container容器,并结束和销毁AppMaster进程.
    在这里插入图片描述

三大调度策略

  1. 先进先出调度器(FIFO)
    每个job任务(可能是MR程序,Spark程序,Flink程序)独占整个集群所有的资源.如果有小任务在大任务后,小任务会迟迟无法执行
  2. 容量调度器(Capacity)
    类似于多线程,可能会照成资源的浪费, 如果某个通道任务量较少,可以被其他通道借用资源,但是存在资源无法归还的情况
  3. 公平调度器(Fair)
    共享集群所有的资源,但存在多个小任务与大任务同时执行时,大任务迟迟无法执行完成的情况
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值