YARN-8720. CapacityScheduler does not enforce max resource allocation check at queue level. Contributed by Tarun Parimi.
(cherry picked from commit f1a893fdbc2dbe949cae786f08bdb2651b88d673)
This commit is contained in:
parent
b0900ad310
commit
d412785175
@ -207,7 +207,8 @@ public void allocate(ApplicationAttemptId appAttemptId,
|
||||
}
|
||||
}
|
||||
|
||||
Resource maximumCapacity = getScheduler().getMaximumResourceCapability();
|
||||
Resource maximumCapacity =
|
||||
getScheduler().getMaximumResourceCapability(app.getQueue());
|
||||
|
||||
// sanity check
|
||||
try {
|
||||
|
@ -498,10 +498,11 @@ private List<ResourceRequest> validateAndCreateResourceRequest(
|
||||
}
|
||||
|
||||
// Normalize all requests
|
||||
String queue = submissionContext.getQueue();
|
||||
for (ResourceRequest amReq : amReqs) {
|
||||
SchedulerUtils.normalizeAndValidateRequest(amReq,
|
||||
scheduler.getMaximumResourceCapability(),
|
||||
submissionContext.getQueue(), scheduler, isRecovery, rmContext);
|
||||
scheduler.getMaximumResourceCapability(queue),
|
||||
queue, scheduler, isRecovery, rmContext);
|
||||
|
||||
amReq.setCapability(
|
||||
scheduler.getNormalizedResource(amReq.getCapability()));
|
||||
|
@ -892,6 +892,9 @@ private static ResourceScheduler mockResourceScheduler() {
|
||||
when(scheduler.getMaximumResourceCapability()).thenReturn(
|
||||
Resources.createResource(
|
||||
YarnConfiguration.DEFAULT_RM_SCHEDULER_MAXIMUM_ALLOCATION_MB));
|
||||
when(scheduler.getMaximumResourceCapability(any(String.class))).thenReturn(
|
||||
Resources.createResource(
|
||||
YarnConfiguration.DEFAULT_RM_SCHEDULER_MAXIMUM_ALLOCATION_MB));
|
||||
|
||||
ResourceCalculator rs = mock(ResourceCalculator.class);
|
||||
when(scheduler.getResourceCalculator()).thenReturn(rs);
|
||||
|
@ -1166,6 +1166,9 @@ private static YarnScheduler mockYarnScheduler() throws YarnException {
|
||||
when(yarnScheduler.getMaximumResourceCapability()).thenReturn(
|
||||
Resources.createResource(
|
||||
YarnConfiguration.DEFAULT_RM_SCHEDULER_MAXIMUM_ALLOCATION_MB));
|
||||
when(yarnScheduler.getMaximumResourceCapability(any(String.class)))
|
||||
.thenReturn(Resources.createResource(
|
||||
YarnConfiguration.DEFAULT_RM_SCHEDULER_MAXIMUM_ALLOCATION_MB));
|
||||
when(yarnScheduler.getAppsInQueue(QUEUE_1)).thenReturn(
|
||||
Arrays.asList(getApplicationAttemptId(101), getApplicationAttemptId(102)));
|
||||
when(yarnScheduler.getAppsInQueue(QUEUE_2)).thenReturn(
|
||||
|
Loading…
x
Reference in New Issue
Block a user