YARN——队列内的优先级调度
【原理介绍】
在hadoop官方文档中,描述了容量调度支持按任务的优先级来调度。
具体来说就是:客户端向yarn提交任务时,可以指定任务的优先级。任务的优先级是一个正整数,值越大意味着任务的优先级越高;在容量调度的队列中,对任务按优先级进行排序,优先级越高的任务,会优先进行资源的分配。
不同类型的任务在提交时,通过不同参数指定优先级,但基本上大同小异,例如:
MapReduce |
"-Dmapreduce.job.priority=xx" |
Flink |
"-yD yarn.applicaiton.priority=xx" |
Spark |
"spark.yarn.priority=xx" |
注意:spark的参数在3.0版本后才引入使用
既然任务提交时,优先级可以通过参数指定,那么如果没有指定优先级,是否会有对应的默认值呢?答案是肯定的。
在yarn中,任务的优先级有两个维度配置:一个是全局最大优先级,一个是队列默认优先级。
队列中任务的默认优先级在配置文件capacity.scheduler.xml中进行配置,例如:
<property>
<name>yarn.scheduler.capacity.root.hncscwc.default-application-priority</name>
<value>80</value>
</property>
该配置指定hncscwc队列中任务的默认优先级为80。
需要注意的是:队列中的默认优先级仅作用于未设置优先级的任务,即如果提交任务时没有设置任务的优先级,则使用队列的默认优先级作为任务的优先级。对于已经设置了优先级的任务,即便优先级大于队列设置的默认优先级,也不会进行修改。
全局最大优先级在配置文件yarn-site.xml中进行设置,例如:
<proerpty>
<name>yarn.cluster.max-application-priority</name>
<value>100</value>
</property>
任务提交时,如果没有指定优先级,使用提交队列的队列默认优先级;但如果指定的优先级超过全局配置的优先级,则使用全局配置的优先级作为任务的优先级。即任务最终的优先级不能大于全局配置的优先级。
【测试验证】
通过向同一个队列,先后提交多个优先级不同的任务,然后在RM的web页面上,观察任务的状态变化及container的分配情况。
从上图可以清楚的看到,优先级为9的任务,其提交时间比优先级为34、优先级为21的任务都要早,但优先级为34、21的任务却优先分配到了资源。(从RM的日志可以更近一步的看到,优先级为34的任务最先分配到资源)
【潜在问题与解决办法】
由于高优先级的任务优先分配资源,假如任务并发运行时,始终有更高优先级的任务在提交,那么低优先级的任务就可能始终无法分配到资源,出现"饿死"的现象。
对于不同用户之间,任务优先级高低引起的饿死问题,可以通过相关配置参数,限制队列中单个用户可使用资源的上限,来解决此问题。
如果是同一用户之间,任务优先级高低引起的饿死问题,目前还没有较好的处理方式。
另外,资源的抢占是一个问题解决的方向,但这个内容比较大,这里不展开说明。
【总结】
本文介绍了容量调度中优先级调度的相关知识,其使用范围局限于同一队列中的不同任务,按照优先级进行调度。
在2.9.0版本中,yarn支持按队列优先级进行调度,即同一父队列下的多个子队列,其优先级各不相同,调度时,按队列优先级排序,优先从优先级更高的队列中选择任务进行调度,有兴趣的小伙伴,可以深入研究。
好了,本文就介绍到这里,原创不易,点赞,在看,分享是最好的支持, 我会持续输出干货的,谢谢~
本文分享自微信公众号 - hncscwc(gh_383bc7486c1a)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
数据库界的四位图灵奖得主(二):解决科学问题才是硬道理
作者:波罗 前言 原拟名《梅花香自苦寒来,关系库从磨难出》,以突出E.F.Codd经历的困难,近日连开两个973项目交流会,换场期间,有朋友建议把最后的小标题升为大标题,以突出其贡献,也合今天973 基调;此外,第一次在北京机场发博文,匆忙之中,如有错漏,请及时提醒。 功过从何数 1981年,58岁的E.F.Cood 获得图灵奖,这是数据库界的第二枚(也是久违了的)图灵奖。从1970年提出关系数据库到获奖,奋斗十一年,终成正果。如今,斯人已驾鹤西去,回望其成功之路,不禁想起了电视剧《西游记》取经成功后的插曲《青青菩提树》: 几多朝朝暮暮,漫漫云烟无数,….. 历经坎坷终无悔,未教年华虚度….. 面对大千世界, 功过从何数? …… 好,现在就来数一数。 网上传统传记太多,这里想写一篇不很传统的、轻松一点的描述,须从数据库的型与值说起。 数据库的型与值 模型和模特儿在英语中是同一个单词model,其实,译音又译意的“模特儿”既通俗、又朴素,也最直白地说清楚了高雅的“模型”在数据库中的的含义,模型就是骨架。且看图: 上图中,左边的模特, 抽象一点,不过八两铁丝,一些手艺;披上了衣服后,加上想...
-
下一篇
数据库界的四位图灵奖得主(一):时势造英雄
作者:波罗 前言 2015年3月25日,美国计算机协会(ACM)宣布,来自麻省理工学院的教授Michael Stonebraker获得2014年度“图灵奖”(第N年宣布N-1年得主),投石冲破水中天,一些与数据处理相关的微信群中喷发一股图灵奖议论热,有位教授在微信中赞叹“说数据库界一共四位传奇大师,太伟大了“,接着有几位教授提议在今年的教学PPT中,加上相关科普,激励年轻的数据库人。朋友们鼓励我来一篇非传记的、活泼一点的人物故事。 阿兰.图灵 没有诺贝尔, 我们有图灵. 诺贝尔没有机会登上时间机器向前穿越,未能预见到计算机科学对人类之重,于是计算机界没有诺奖。 没有诺奖,计算机科学也要发展,计算机人也要过日子,计算机界的Top贡献也需要Top奖,在需要一个能与诺贝尔相比较的人物作图腾的时候,天公抖擞,不拘一格,降下了图灵。 图灵多才多艺、也多故事、多传说。小时的神童,青年时的马拉松健将(有过名次);善于长跑的图灵,在科学上一趟冲刺,跑在了计算机之前,全世界还没人见过计算机的时候 ,他构筑了“理想计算机”,阐明了通用计算机的可行性,其前瞻性和深刻性,至今影响着计算复杂性理论;有人赞他是计...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL数据库在高并发下的优化方案
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- Dcoker安装(在线仓库),最新的服务器搭配容器使用