diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerConfiguration.java index 08380f5cead..02cbb61d739 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerConfiguration.java @@ -906,14 +906,7 @@ public Resource getMaximumAllocationPerQueue(String queue) { Resource result = Resources.clone(clusterMax); result.setMemorySize(maxAllocationMbPerQueue); result.setVirtualCores(maxAllocationVcoresPerQueue); - if (maxAllocationMbPerQueue > clusterMax.getMemorySize() - || maxAllocationVcoresPerQueue > clusterMax.getVirtualCores()) { - throw new IllegalArgumentException( - "Queue maximum allocation cannot be larger than the cluster setting" - + " for queue " + queue - + " max allocation per queue: " + result - + " cluster setting: " + clusterMax); - } + return result; } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacityScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacityScheduler.java index c090866ca4f..f22d4db6b59 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacityScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacityScheduler.java @@ -2993,7 +2993,7 @@ public void testRefreshQueuesMaxAllocationRefresh() throws Exception { @Test public void testRefreshQueuesMaxAllocationPerQueueLarge() throws Exception { - // verify we can't set the allocation per queue larger then cluster setting + // verify we can override the allocation per queue larger then cluster setting CapacityScheduler cs = new CapacityScheduler(); cs.setConf(new YarnConfiguration()); cs.setRMContext(resourceManager.getRMContext()); @@ -3004,27 +3004,11 @@ public void testRefreshQueuesMaxAllocationPerQueueLarge() throws Exception { // change max allocation for B3 queue to be larger then cluster max setMaxAllocMb(conf, B3, YarnConfiguration.DEFAULT_RM_SCHEDULER_MAXIMUM_ALLOCATION_MB + 2048); - try { - cs.reinitialize(conf, mockContext); - fail("should have thrown exception"); - } catch (IOException e) { - assertTrue("maximum allocation exception", - e.getCause().getMessage().contains("maximum allocation")); - } - - setMaxAllocMb(conf, B3, - YarnConfiguration.DEFAULT_RM_SCHEDULER_MAXIMUM_ALLOCATION_MB); cs.reinitialize(conf, mockContext); setMaxAllocVcores(conf, B3, YarnConfiguration.DEFAULT_RM_SCHEDULER_MAXIMUM_ALLOCATION_VCORES + 1); - try { - cs.reinitialize(conf, mockContext); - fail("should have thrown exception"); - } catch (IOException e) { - assertTrue("maximum allocation exception", - e.getCause().getMessage().contains("maximum allocation")); - } + cs.reinitialize(conf, mockContext); } @Test