diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/reservation/FairReservationSystem.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/reservation/FairReservationSystem.java
index 9bf92c2ffa9..611fca8a85c 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/reservation/FairReservationSystem.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/reservation/FairReservationSystem.java
@@ -25,6 +25,7 @@
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.QueueMetrics;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler;
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSQueue;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler;
import org.apache.hadoop.yarn.util.resource.ResourceCalculator;
@@ -87,4 +88,16 @@ protected Resource getPlanQueueCapacity(String planQueueName) {
.getSteadyFairShare();
}
+ @Override
+ public Plan getPlan(String planName) {
+ // make sure plan name is a full queue name in fair scheduler. For example,
+ // "root.default" is the full queue name for "default".
+ FSQueue queue = fairScheduler.getQueueManager().getQueue(planName);
+
+ if (queue != null) {
+ return super.getPlan(queue.getQueueName());
+ } else {
+ return null;
+ }
+ }
}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesReservation.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesReservation.java
index d055130597e..492e78ab0be 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesReservation.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesReservation.java
@@ -152,21 +152,9 @@ protected void configureServlets() {
bind(GenericExceptionHandler.class);
conf.setInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS);
- Configuration conf = new Configuration();
conf.setBoolean(YarnConfiguration.RM_RESERVATION_SYSTEM_ENABLE, true);
- conf.setInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS);
- conf.setClass(YarnConfiguration.RM_SCHEDULER, CapacityScheduler.class,
- ResourceScheduler.class);
- CapacitySchedulerConfiguration csconf =
- new CapacitySchedulerConfiguration(conf);
- String[] queues = { "default", "dedicated" };
- csconf.setQueues("root", queues);
- csconf.setCapacity("root.default", 50.0f);
- csconf.setCapacity("root.dedicated", 50.0f);
- csconf.setReservable("root.dedicated", true);
- rm = new MockRM(csconf);
+ rm = new MockRM(conf);
bind(ResourceManager.class).toInstance(rm);
if (setAuthFilter) {
filter("/*").through(TestRMCustomAuthFilter.class);
@@ -180,6 +168,16 @@ private class CapTestServletModule extends TestServletModule {
public void configureScheduler() {
conf.set(YarnConfiguration.RM_SCHEDULER,
CapacityScheduler.class.getName());
+ conf.setClass(YarnConfiguration.RM_SCHEDULER, CapacityScheduler.class,
+ ResourceScheduler.class);
+ CapacitySchedulerConfiguration csconf =
+ new CapacitySchedulerConfiguration(conf);
+ String[] queues = { "default", "dedicated" };
+ csconf.setQueues("root", queues);
+ csconf.setCapacity("root.default", 50.0f);
+ csconf.setCapacity("root.dedicated", 50.0f);
+ csconf.setReservable("root.dedicated", true);
+ conf = csconf;
}
}
@@ -196,9 +194,13 @@ public void configureScheduler() {
out.println(" someuser ");
out.println(" ");
out.println(" ");
+ out.println(" ");
+ out.println(" ");
out.println(" someuser ");
out.println(" ");
out.println("");
+ out.println("drf" +
+ "");
out.println("");
out.close();
} catch (IOException e) {