首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于纱/Hadoop调度,我能否只抢先某些队列?

对于纱/Hadoop调度,我能否只抢先某些队列?
EN

Stack Overflow用户
提问于 2016-01-26 01:27:01
回答 1查看 1.5K关注 0票数 1

情况是,我使用纱线来管理一个同时运行Spark和Hadoop的集群。通常,作业没有相对大量的输入数据,但是偶尔会运行一系列Hadoop MapReduce作业,这些作业确实有大量的输入数据,并且可以长时间地将集群捆绑在一起,这样其他用户就不能运行他们更小的作业。

当集群为空时,我想要做的是将整个集群用于大规模作业,但是如果另一个用户提交了一个作业,我希望使用抢占式调度功能来杀死大型作业中的一些容器,这样它们就可以用于较小的作业了。然而,我不想让任何其他的工作被抢占,只想做大量的工作。

从我所发现的情况来看,使用公平的调度程序、为大规模作业定义队列、并以某种方式只在大规模作业队列上启用抢占似乎是可能的。

对于任何使用过调度程序和队列的人来说,我的问题是,是否可能只抢占特定队列中的作业,如果可以,我如何启用每个队列的该功能?或者还有其他更好的方法来达到我想要的目标?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-26 02:59:19

可以只抢占特定队列中的作业吗?抢占是一种全局启用。一旦启用,它适用于所有队列。(纱线网站中的“yarn.scheduler.fair.preemption”需要设置为"true“)

如何在每个队列启用该功能?如上面所述,启用全局抢占,并在所有队列的分配文件中为"minSharePreemptionTimeout“和"fairSharePreemptionTimeout”设置合理的值,但执行大量作业的队列除外。这将防止包含大量作业的队列从其他队列抢占作业。在你的例子中,大部分的工作都是小的,所以大量的工作仍然会以较少的资源运行。同时,这一设置将允许较小的工作抢占大量工作所使用的集装箱。

还可以考虑根据需要设置yarn.scheduler.fair.preemption.cluster-utilization-threshold和其他相关属性。

仔细看一下https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/FairScheduler.html

希望这些信息能帮助你进一步探索。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35005586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档