YARN-7311. Fix TestRMWebServicesReservation parametrization for fair scheduler. (Yufei Gu via Subru).
(cherry picked from commit 75323394fbc4211596a2c8fbb5e584f3183f742f)
This commit is contained in:
parent
c0ee583656
commit
5e7491d532
@ -25,6 +25,7 @@
|
|||||||
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
|
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.QueueMetrics;
|
||||||
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler;
|
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.server.resourcemanager.scheduler.fair.FairScheduler;
|
||||||
import org.apache.hadoop.yarn.util.resource.ResourceCalculator;
|
import org.apache.hadoop.yarn.util.resource.ResourceCalculator;
|
||||||
|
|
||||||
@ -87,4 +88,16 @@ protected Resource getPlanQueueCapacity(String planQueueName) {
|
|||||||
.getSteadyFairShare();
|
.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -152,21 +152,9 @@ protected void configureServlets() {
|
|||||||
bind(GenericExceptionHandler.class);
|
bind(GenericExceptionHandler.class);
|
||||||
conf.setInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
|
conf.setInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
|
||||||
YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS);
|
YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS);
|
||||||
Configuration conf = new Configuration();
|
|
||||||
conf.setBoolean(YarnConfiguration.RM_RESERVATION_SYSTEM_ENABLE, true);
|
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);
|
bind(ResourceManager.class).toInstance(rm);
|
||||||
if (setAuthFilter) {
|
if (setAuthFilter) {
|
||||||
filter("/*").through(TestRMCustomAuthFilter.class);
|
filter("/*").through(TestRMCustomAuthFilter.class);
|
||||||
@ -180,6 +168,16 @@ private class CapTestServletModule extends TestServletModule {
|
|||||||
public void configureScheduler() {
|
public void configureScheduler() {
|
||||||
conf.set(YarnConfiguration.RM_SCHEDULER,
|
conf.set(YarnConfiguration.RM_SCHEDULER,
|
||||||
CapacityScheduler.class.getName());
|
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(" <aclAdministerApps>someuser </aclAdministerApps>");
|
out.println(" <aclAdministerApps>someuser </aclAdministerApps>");
|
||||||
out.println(" </queue>");
|
out.println(" </queue>");
|
||||||
out.println(" <queue name=\"dedicated\">");
|
out.println(" <queue name=\"dedicated\">");
|
||||||
|
out.println(" <reservation>");
|
||||||
|
out.println(" </reservation>");
|
||||||
out.println(" <aclAdministerApps>someuser </aclAdministerApps>");
|
out.println(" <aclAdministerApps>someuser </aclAdministerApps>");
|
||||||
out.println(" </queue>");
|
out.println(" </queue>");
|
||||||
out.println("</queue>");
|
out.println("</queue>");
|
||||||
|
out.println("<defaultQueueSchedulingPolicy>drf" +
|
||||||
|
"</defaultQueueSchedulingPolicy>");
|
||||||
out.println("</allocations>");
|
out.println("</allocations>");
|
||||||
out.close();
|
out.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user