YARN-7482. Max applications calculation per queue has to be retrospected with absolute resource support. Contributed by Sunil G.
This commit is contained in:
parent
034b312d9f
commit
e65ca92fb6
|
@ -1088,6 +1088,26 @@ public class ParentQueue extends AbstractCSQueue {
|
|||
childQueue.getQueueCapacities().setAbsoluteMaximumCapacity(label,
|
||||
(float) childQueue.getQueueCapacities().getMaximumCapacity(label)
|
||||
/ getQueueCapacities().getAbsoluteMaximumCapacity(label));
|
||||
|
||||
// Re-visit max applications for a queue based on absolute capacity if
|
||||
// needed.
|
||||
if (childQueue instanceof LeafQueue) {
|
||||
LeafQueue leafQueue = (LeafQueue) childQueue;
|
||||
CapacitySchedulerConfiguration conf = csContext.getConfiguration();
|
||||
int maxApplications = (int) (conf.getMaximumSystemApplications()
|
||||
* childQueue.getQueueCapacities().getAbsoluteCapacity(label));
|
||||
leafQueue.setMaxApplications(maxApplications);
|
||||
|
||||
int maxApplicationsPerUser = Math.min(maxApplications,
|
||||
(int) (maxApplications
|
||||
* (leafQueue.getUsersManager().getUserLimit() / 100.0f)
|
||||
* leafQueue.getUsersManager().getUserLimitFactor()));
|
||||
leafQueue.setMaxApplicationsPerUser(maxApplicationsPerUser);
|
||||
LOG.info("LeafQueue:" + leafQueue.getQueueName() + ", maxApplications="
|
||||
+ maxApplications + ", maxApplicationsPerUser="
|
||||
+ maxApplicationsPerUser + ", Abs Cap:"
|
||||
+ childQueue.getQueueCapacities().getAbsoluteCapacity(label));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue