0

我正在运行具有多个队列和多个用户的 Hadoop CapacityScheduler。我有三个队列,容量分别为 70%、20% 和 10%,例如

mapred.capacity-scheduler.queue.default.capacity=70

对于我所有的队列

mapred.capacity-scheduler.queue.default.maximum-capacity=100

我惊讶地发现,即使有多余的容量可用,队列似乎也几乎没有使用过它们的多余容量(它们都会以特定于队列的容量“最大化”)。后来我发现队列只有在包含来自多个用户的作业时才会使用多余的容量。

即单个用户向队列提交的任意数量的作业永远不会使用户容量过剩。只有当另一个用户提交第二个作业时,才会使用多余的容量。

如果没有其他作业占用任何资源,我希望单个用户使用所有集群资源。

我已经彻底研究了CapacityScheduler 文档并使用了这些属性但没有成功。

如果有人知道如何做到这一点,请告诉我。

4

1 回答 1

0

您可以查看http://hadoop.apache.org/common/docs/r1.0.3/capacity_scheduler.html中的属性“mapred.capacity-scheduler.queue.queue-name.user-limit-factor” 。

默认情况下,此值设置为 1,以确保单个用户永远不会超过队列的配置容量,而不管集群有多空闲。您可以将其设置为更大的数字以实现您想要的。

于 2012-07-19T05:10:36.977 回答