INFO-Yarn队列优先级

适用模块
Yarn
具体说明
当Yarn使用Fair Scheduler时,SLA与Default将按照队列权重抢占资源;网易部署集群默认使用Faire Scheduler调度器,SLA与Default队列权重为10:1,队列资源分配存在以下几种情况:
1. 无任务提交至SLA队列,此时Default独享父队列全部资源及并发数 ,在资源及并发上限下,所有任务均可正常执行;
2. 无任务提交是Default队列,此时SLA队列独享父队列全部资源及并发数,在资源及并发上限下,所有任务均可正常执行;
3. SLA与Default队列均有任务提交,此时Yarn将按照队列权重分配SLA与Default抢占资源,SLA队列资源及并发大概为父队列的10/11,Default队列资源及并发数大概为父队列资源1/11,此时一般会出现SLA占用大部分父队列资源,但部分资源空闲,而Default队列仅获取少量资源,任务处于Accepted状态等待资源;
在其他因子无差异情况下,可简化计算公式为:
子队列配额 = 父队列配额 * 当前队列权重/所有子队列权重和
详细计算规则可参考:https://cloud.tencent.com/developer/article/1239472
  1. Yarn队列 Fair Scheduler 一般为single-resource,即只关注内存资源这一项指标,即上述案例实际仅按照内存计算资源配额;
  2. 队列权重参数定义仅影响资源分配优先级,但队列资源分配计算公式影响因子非常多,包括权重因子,且直接影响队列抢占资源大小;
案例说明
队列 配置 权重
root.support 100Core,300Gb,20 max Am
root.support.default 100Core,300Gb,20 max Am 1
root.support.sla 100Core,300Gb,20 max Am 10
假设项目资源配置如上表格:
情况1:无任务提交至root.support.sla队列,此时 root.support.default独享全部资源及并发数,即100Core,300Gb,20 max Am,资源可充分利用;
情况2:无任务提交至root.support.default队列,,此时 root.support.sla独享全部资源及并发数,即100Core,300Gb,20 max Am,资源可充分利用;
情况3:任务平均提交至root.support.default和root.support.sla队列,此时root.support.sla队列资源配额为91Core,273Gb,18 max Am,root.support.default队列资源配额为9Core,27Gb,2 max Am;root.support.sla上任务可正常运行,且一般会出现资源闲置情况,但root.support.default将会出现任务长时间处于Accepted状态,等待上一个任务结束释放资源或root.support.sla队列中任务全部运行结束,将资源释放至root.support.default队列

作者:Semon