The capacity scheduler calculates the maxActiveApplications and the maxActiveApplicationsPerUser based on the config yarn.scheduler.capacity.maximum-applications or default 10000.
MaxActiveApplications = max ( ceil ( clusterMemory/minAllocation * maxAMResource% * absoluteMaxCapacity), 1)
MaxActiveAppsPerUser = max( ceil (maxActiveApplicationsComputedAbove * (userLimit%/100) * userLimitFactor), 1)
maxActiveApplications is already multiplied by the queue absolute MAXIMUM capacity, so if max capacity > capacity and if you have user limit factor 1 (which is the default) and only 1 user is running, that user will not be allowed to use over the queue capacity, so having it relative to MAX capacity doesn't make sense. That user could easily end up in a deadlock and all its space used by application masters.
|Status||Patch Available [ 10002 ]||Resolved [ 5 ]|
|Fix Version/s||0.23.2 [ 12319851 ]|
|Resolution||Fixed [ 1 ]|
|Status||Patch Available [ 10002 ]||Open [ 1 ]|
|Field||Original Value||New Value|
|Assignee||Eric Payne [ eepayne ]|