我正在运行具有多个队列和多个用户的 Hadoop CapacityScheduler。我有三个队列,容量分别为 70%、20% 和 10%,例如
mapred.capacity-scheduler.queue.default.capacity=70
对于我所有的队列
mapred.capacity-scheduler.queue.default.maximum-capacity=100
我惊讶地发现,即使有多余的容量可用,队列似乎也几乎没有使用过它们的多余容量(它们都会以特定于队列的容量“最大化”)。后来我发现队列只有在包含来自多个用户的作业时才会使用多余的容量。
即单个用户向队列提交的任意数量的作业永远不会使用户容量过剩。只有当另一个用户提交第二个作业时,才会使用多余的容量。
如果没有其他作业占用任何资源,我希望单个用户使用所有集群资源。
我已经彻底研究了CapacityScheduler 文档并使用了这些属性但没有成功。
如果有人知道如何做到这一点,请告诉我。