YARN-7311. Fix TestRMWebServicesReservation parametrization for fair scheduler. (Yufei Gu via Subru).
(cherry picked from commit 75323394fb
)
This commit is contained in:
parent
c0ee583656
commit
5e7491d532
|
@ -25,6 +25,7 @@ import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
|
|||
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 @@ public class FairReservationSystem extends AbstractReservationSystem {
|
|||
.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 @@ public class TestRMWebServicesReservation extends JerseyTestBase {
|
|||
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 @@ public class TestRMWebServicesReservation extends JerseyTestBase {
|
|||
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 class TestRMWebServicesReservation extends JerseyTestBase {
|
|||
out.println(" <aclAdministerApps>someuser </aclAdministerApps>");
|
||||
out.println(" </queue>");
|
||||
out.println(" <queue name=\"dedicated\">");
|
||||
out.println(" <reservation>");
|
||||
out.println(" </reservation>");
|
||||
out.println(" <aclAdministerApps>someuser </aclAdministerApps>");
|
||||
out.println(" </queue>");
|
||||
out.println("</queue>");
|
||||
out.println("<defaultQueueSchedulingPolicy>drf" +
|
||||
"</defaultQueueSchedulingPolicy>");
|
||||
out.println("</allocations>");
|
||||
out.close();
|
||||
} catch (IOException e) {
|
||||
|
|
Loading…
Reference in New Issue