我正在运行具有多个队列和多人用户的Hadoop CapacityScheduler。我有三个队列,容量分别为70%,20%和10%,例如
mapred.capacity-scheduler.queue.default.capacity = 70
对于我所有的队列
mapred.capacity-scheduler.queue.default.maximum容量= 100
我很惊讶地发现这些队列似乎几乎没有使用过剩的容量(即使有足够的容量,他们也会以队列特定的容量“最大化”)。后来我发现队列只有在包含来自多个用户的作业时才会使用多余的容量。
即。单个用户提交到队列的任意数量的作业永远不会使用户产生过剩的容量。只有在不同用户提交第二份作业时才会使用超额容量。
如果没有其他作业占用任何资源,我希望单个用户使用所有群集资源。
我已经彻底研究了CapacityScheduler文档并且没有成功地使用这些属性。
如果有人知道怎么做,请告诉我。
谢谢你, 黑尔格
答案 0 :(得分:0)
您可以在http://hadoop.apache.org/common/docs/r1.0.3/capacity_scheduler.html中查看属性“mapred.capacity-scheduler.queue.queue-name.user-limit-factor”。
默认情况下,此值设置为1,以确保单个用户永远不会占用队列配置的容量,而不管群集的空闲程度如何。您可以将其设置为更大的数字,以达到您想要的效果。