Yarn支持队列内多优先级应用调度

本文探讨了在同一Yarn队列内支持应用优先级调度的策略,包括用户设置优先级的需求、调度要求、细节要点如ACL管控,以及可能遇到的饥饿和抢占问题。通过用户限制和优先级ACL控制,减少饥饿问题的发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言


在上篇文章中,笔者刚刚阐述过Yarn队列的多优先级调度策略,不同的队列分配不同的优先级等级,这样提交到优先级高的队列上的应用能被优先被处理。但是又一个问题来了,如果我们又想在同一个队列内,对应用的优先级再次进行划分呢?而不是按照纯粹提交时间来进行先后顺序调度。答案是可行的,本文笔者来简单聊聊这个话题,也刚刚好是延续着上一篇的话题内容。

问题描述


一个根本的问题:

如何在一个队列内,支持应用任务间的优先级设置?
如果在不改动任何现有功能的前提下,其实是有变通的办法的:配置多个Yarn队列,分配不同优先级,然后提交对应应用到对应的队列。

但是显然上面提到的方法非常不灵活,而且当应用规模,种类上去之后,这种方式就会越来越凸显出它的弊端。

应用优先级策略的要求


这里我们来看看,针对同个队列内,设置优先级策略,要满足怎样的基本要求呢?
主要要求如下:

  • 用户能够对它们的任务设置优先级,并且优先级同样会作用在队列的子队列内。
  • 队列现有的用户限制策略,按照提交时间的调度顺序控制应该与优先级策略集成,组合,形成新的应用调度策略。策略的调度方式大体如下:
    1)先按照优先级来调度应用,高优先级应用先提交运行,低优先级等待高优先级应用运行结束。这里有一个例外情况,如果用户的应用达到用户资源限制范围(后面会提到),也需要进行队列等待。
    2)如果优先级相同,再按照提交时间,进行排序,提交时间早的,先提交运行。
  • 应用优先级的ACL管控,防止用户对其自身应用永远设置系统最高优先级运行。

细节要点


这里主要提1个细节要点:

应用优先级设置的ACL管控,这是为了防止每个用户把自己的应用设置为系统最高优先级,这样,这个功能就完全没有任何意义了。具体地来说,这个ACL设置是指定了具体某个队列,具体的用户,所

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值