【发布时间】:2016-05-02 12:41:36
【问题描述】:
情况是我正在使用 YARN 来管理同时运行 Spark 和 Hadoop 的集群。通常作业没有相对大量的输入数据,但是有一系列 Hadoop MapReduce 作业偶尔运行,它们确实有大量输入数据,并且可以长时间占用集群,因此其他用户无法使用运行他们的小得多的工作。
我希望能够在集群为空时将整个集群用于大规模作业,但如果另一个用户提交作业,我想使用抢占调度功能来杀死一些大型工作中的容器,因此它们可以腾出时间来完成较小的工作。但是,我不希望任何其他工作被抢占,只希望大规模工作。
根据我的发现,似乎可以使用公平调度程序来执行此操作,为大量作业定义一个队列,并以某种方式仅在大量作业队列上启用抢占。
对于使用过调度程序和队列的任何人,我的问题是,是否可以仅从特定队列中抢占作业,如果可以,如何为每个队列启用该功能?还是有另一种/更好的方法来实现我所追求的?
【问题讨论】:
标签: hadoop mapreduce hadoop-yarn