|
@@ -120,6 +120,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
// to initialize the master key
|
|
|
resourceManager.getRMContext().getContainerTokenSecretManager().rollMasterKey();
|
|
|
+
|
|
|
+ scheduler.setRMContext(resourceManager.getRMContext());
|
|
|
}
|
|
|
|
|
|
@After
|
|
@@ -133,12 +135,12 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test (timeout = 30000)
|
|
|
public void testConfValidation() throws Exception {
|
|
|
- ResourceScheduler scheduler = new FairScheduler();
|
|
|
+ FairScheduler scheduler = new FairScheduler();
|
|
|
Configuration conf = new YarnConfiguration();
|
|
|
conf.setInt(YarnConfiguration.RM_SCHEDULER_MINIMUM_ALLOCATION_MB, 2048);
|
|
|
conf.setInt(YarnConfiguration.RM_SCHEDULER_MAXIMUM_ALLOCATION_MB, 1024);
|
|
|
try {
|
|
|
- scheduler.reinitialize(conf, null);
|
|
|
+ scheduler.serviceInit(conf);
|
|
|
fail("Exception is expected because the min memory allocation is" +
|
|
|
" larger than the max memory allocation.");
|
|
|
} catch (YarnRuntimeException e) {
|
|
@@ -152,7 +154,7 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
conf.setInt(YarnConfiguration.RM_SCHEDULER_MINIMUM_ALLOCATION_VCORES, 2);
|
|
|
conf.setInt(YarnConfiguration.RM_SCHEDULER_MAXIMUM_ALLOCATION_VCORES, 1);
|
|
|
try {
|
|
|
- scheduler.reinitialize(conf, null);
|
|
|
+ scheduler.serviceInit(conf);
|
|
|
fail("Exception is expected because the min vcores allocation is" +
|
|
|
" larger than the max vcores allocation.");
|
|
|
} catch (YarnRuntimeException e) {
|
|
@@ -184,6 +186,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
conf.setInt(YarnConfiguration.RM_SCHEDULER_MINIMUM_ALLOCATION_MB, 512);
|
|
|
conf.setInt(FairSchedulerConfiguration.RM_SCHEDULER_INCREMENT_ALLOCATION_MB,
|
|
|
128);
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
Assert.assertEquals(true, scheduler.assignMultiple);
|
|
|
Assert.assertEquals(3, scheduler.maxAssign);
|
|
@@ -211,6 +215,7 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
FairSchedulerConfiguration.RM_SCHEDULER_INCREMENT_ALLOCATION_MB, 512);
|
|
|
conf.setInt(
|
|
|
FairSchedulerConfiguration.RM_SCHEDULER_INCREMENT_ALLOCATION_VCORES, 2);
|
|
|
+ fs.init(conf);
|
|
|
fs.reinitialize(conf, null);
|
|
|
Assert.assertEquals(256, fs.getMinimumResourceCapability().getMemory());
|
|
|
Assert.assertEquals(1, fs.getMinimumResourceCapability().getVirtualCores());
|
|
@@ -228,8 +233,9 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
FairSchedulerConfiguration.RM_SCHEDULER_INCREMENT_ALLOCATION_MB, 512);
|
|
|
conf.setInt(
|
|
|
FairSchedulerConfiguration.RM_SCHEDULER_INCREMENT_ALLOCATION_VCORES, 2);
|
|
|
- fs.reinitialize(conf, null);
|
|
|
- Assert.assertEquals(0, fs.getMinimumResourceCapability().getMemory());
|
|
|
+ fs.init(conf);
|
|
|
+ fs.reinitialize(conf, null);
|
|
|
+ Assert.assertEquals(0, fs.getMinimumResourceCapability().getMemory());
|
|
|
Assert.assertEquals(0, fs.getMinimumResourceCapability().getVirtualCores());
|
|
|
Assert.assertEquals(512, fs.getIncrementResourceCapability().getMemory());
|
|
|
Assert.assertEquals(2, fs.getIncrementResourceCapability().getVirtualCores());
|
|
@@ -237,6 +243,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testAggregateCapacityTracking() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
// Add a node
|
|
@@ -262,6 +270,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testSimpleFairShareCalculation() throws IOException {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
// Add one big node (only care about aggregate capacity)
|
|
@@ -289,6 +299,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testSimpleHierarchicalFairShareCalculation() throws IOException {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
// Add one big node (only care about aggregate capacity)
|
|
@@ -322,6 +334,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testHierarchicalQueuesSimilarParents() throws IOException {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
QueueManager queueManager = scheduler.getQueueManager();
|
|
@@ -346,6 +360,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testSchedulerRootQueueMetrics() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
// Add a node
|
|
@@ -385,6 +401,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test (timeout = 5000)
|
|
|
public void testSimpleContainerAllocation() throws IOException {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
// Add a node
|
|
@@ -433,6 +451,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test (timeout = 5000)
|
|
|
public void testSimpleContainerReservation() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
// Add a node
|
|
@@ -487,6 +507,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
@Test
|
|
|
public void testUserAsDefaultQueue() throws Exception {
|
|
|
conf.set(FairSchedulerConfiguration.USER_AS_DEFAULT_QUEUE, "true");
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
RMContext rmContext = resourceManager.getRMContext();
|
|
|
Map<ApplicationId, RMApp> appsMap = rmContext.getRMApps();
|
|
@@ -513,6 +535,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
@Test
|
|
|
public void testNotUserAsDefaultQueue() throws Exception {
|
|
|
conf.set(FairSchedulerConfiguration.USER_AS_DEFAULT_QUEUE, "false");
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
RMContext rmContext = resourceManager.getRMContext();
|
|
|
Map<ApplicationId, RMApp> appsMap = rmContext.getRMApps();
|
|
@@ -539,6 +563,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testEmptyQueueName() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
// only default queue
|
|
@@ -559,8 +585,10 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
@Test
|
|
|
public void testAssignToQueue() throws Exception {
|
|
|
conf.set(FairSchedulerConfiguration.USER_AS_DEFAULT_QUEUE, "true");
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
-
|
|
|
+
|
|
|
RMApp rmApp1 = new MockRMApp(0, 0, RMAppState.NEW);
|
|
|
RMApp rmApp2 = new MockRMApp(1, 1, RMAppState.NEW);
|
|
|
|
|
@@ -577,6 +605,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
@Test
|
|
|
public void testAssignToNonLeafQueueReturnsNull() throws Exception {
|
|
|
conf.set(FairSchedulerConfiguration.USER_AS_DEFAULT_QUEUE, "true");
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
scheduler.getQueueManager().getLeafQueue("root.child1.granchild", true);
|
|
@@ -594,6 +624,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
public void testQueuePlacementWithPolicy() throws Exception {
|
|
|
conf.setClass(CommonConfigurationKeys.HADOOP_SECURITY_GROUP_MAPPING,
|
|
|
SimpleGroupsMapping.class, GroupMappingServiceProvider.class);
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
ApplicationAttemptId appId;
|
|
@@ -654,7 +686,9 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</queue>");
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
-
|
|
|
+
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
// Add one big node (only care about aggregate capacity)
|
|
@@ -703,6 +737,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
RMApp rmApp1 = new MockRMApp(0, 0, RMAppState.NEW);
|
|
|
|
|
@@ -735,6 +771,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
RMApp rmApp1 = new MockRMApp(0, 0, RMAppState.NEW);
|
|
|
RMApp rmApp2 = new MockRMApp(1, 1, RMAppState.NEW);
|
|
|
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
int capacity = 16 * 1024;
|
|
@@ -769,6 +807,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
*/
|
|
|
@Test
|
|
|
public void testQueueDemandCalculation() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
ApplicationAttemptId id11 = createAppAttemptId(1, 1);
|
|
@@ -819,6 +859,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testAppAdditionAndRemoval() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
ApplicationAttemptId attemptId =createAppAttemptId(1, 1);
|
|
|
AppAddedSchedulerEvent appAddedEvent = new AppAddedSchedulerEvent(attemptId.getApplicationId(), "default",
|
|
@@ -869,6 +911,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
QueueManager queueManager = scheduler.getQueueManager();
|
|
@@ -901,7 +945,9 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</queue>");
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
-
|
|
|
+
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
QueueManager queueManager = scheduler.getQueueManager();
|
|
|
|
|
@@ -928,6 +974,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
// Add one big node (only care about aggregate capacity)
|
|
@@ -985,8 +1033,10 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
-
|
|
|
+
|
|
|
// Add one big node (only care about aggregate capacity)
|
|
|
RMNode node1 =
|
|
|
MockNodes.newNodeInfo(1, Resources.createResource(4 * 1024, 4), 1,
|
|
@@ -1057,7 +1107,9 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</queue>");
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
-
|
|
|
+
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
// Create two nodes
|
|
@@ -1224,6 +1276,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
// Create four nodes
|
|
@@ -1321,6 +1375,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test (timeout = 5000)
|
|
|
public void testMultipleContainersWaitingForReservation() throws IOException {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
// Add a node
|
|
@@ -1363,8 +1419,10 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
-
|
|
|
+
|
|
|
// Add a node
|
|
|
RMNode node1 =
|
|
|
MockNodes
|
|
@@ -1404,6 +1462,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test (timeout = 5000)
|
|
|
public void testReservationWhileMultiplePriorities() throws IOException {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
// Add a node
|
|
@@ -1484,8 +1544,10 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
-
|
|
|
+
|
|
|
ApplicationAttemptId attId1 = createSchedulingRequest(1024, "queue1",
|
|
|
"norealuserhasthisname", 1);
|
|
|
ApplicationAttemptId attId2 = createSchedulingRequest(1024, "queue1",
|
|
@@ -1499,6 +1561,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test (timeout = 5000)
|
|
|
public void testMultipleNodesSingleRackRequest() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
RMNode node1 =
|
|
@@ -1548,6 +1612,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test (timeout = 5000)
|
|
|
public void testFifoWithinQueue() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
RMNode node1 =
|
|
@@ -1592,6 +1658,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
@Test(timeout = 3000)
|
|
|
public void testMaxAssign() throws Exception {
|
|
|
conf.setBoolean(FairSchedulerConfiguration.ASSIGN_MULTIPLE, true);
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
RMNode node =
|
|
@@ -1635,6 +1703,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
*/
|
|
|
@Test(timeout = 5000)
|
|
|
public void testAssignContainer() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
final String user = "user1";
|
|
@@ -1718,9 +1788,11 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</queue>");
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
-
|
|
|
+
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
-
|
|
|
+
|
|
|
int appId = this.APP_ID++;
|
|
|
String user = "usernotallow";
|
|
|
String queue = "queue1";
|
|
@@ -1769,6 +1841,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testReservationThatDoesntFit() throws IOException {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
RMNode node1 =
|
|
@@ -1797,6 +1871,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testRemoveNodeUpdatesRootQueueMetrics() throws IOException {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
assertEquals(0, scheduler.getRootQueueMetrics().getAvailableMB());
|
|
@@ -1825,6 +1901,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testStrictLocality() throws IOException {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
RMNode node1 = MockNodes.newNodeInfo(1, Resources.createResource(1024), 1, "127.0.0.1");
|
|
@@ -1865,6 +1943,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testCancelStrictLocality() throws IOException {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
RMNode node1 = MockNodes.newNodeInfo(1, Resources.createResource(1024), 1, "127.0.0.1");
|
|
@@ -1915,6 +1995,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
*/
|
|
|
@Test
|
|
|
public void testReservationsStrictLocality() throws IOException {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
RMNode node1 = MockNodes.newNodeInfo(1, Resources.createResource(1024), 1, "127.0.0.1");
|
|
@@ -1955,6 +2037,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testNoMoreCpuOnNode() throws IOException {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
RMNode node1 = MockNodes.newNodeInfo(1, Resources.createResource(2048, 1),
|
|
@@ -1976,6 +2060,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testBasicDRFAssignment() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
RMNode node = MockNodes.newNodeInfo(1, BuilderUtils.newResource(8192, 5));
|
|
@@ -2016,6 +2102,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
*/
|
|
|
@Test
|
|
|
public void testBasicDRFWithQueues() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
RMNode node = MockNodes.newNodeInfo(1, BuilderUtils.newResource(8192, 7),
|
|
@@ -2052,6 +2140,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testDRFHierarchicalQueues() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
RMNode node = MockNodes.newNodeInfo(1, BuilderUtils.newResource(12288, 12),
|
|
@@ -2120,7 +2210,9 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
public void testHostPortNodeName() throws Exception {
|
|
|
conf.setBoolean(YarnConfiguration
|
|
|
.RM_SCHEDULER_INCLUDE_PORT_IN_NODE_NAME, true);
|
|
|
- scheduler.reinitialize(conf,
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
+ scheduler.reinitialize(conf,
|
|
|
resourceManager.getRMContext());
|
|
|
RMNode node1 = MockNodes.newNodeInfo(1, Resources.createResource(1024),
|
|
|
1, "127.0.0.1", 1);
|
|
@@ -2200,9 +2292,11 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</user>");
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
-
|
|
|
+
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
-
|
|
|
+
|
|
|
// exceeds no limits
|
|
|
ApplicationAttemptId attId1 = createSchedulingRequest(1024, "queue1", "user1");
|
|
|
verifyAppRunnable(attId1, true);
|
|
@@ -2254,9 +2348,11 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</queue>");
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
-
|
|
|
+
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
-
|
|
|
+
|
|
|
// exceeds no limits
|
|
|
ApplicationAttemptId attId1 = createSchedulingRequest(1024, "queue1.sub1", "user1");
|
|
|
verifyAppRunnable(attId1, true);
|
|
@@ -2316,6 +2412,9 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
Configuration conf = createConfiguration();
|
|
|
conf.setBoolean(FairSchedulerConfiguration.CONTINUOUS_SCHEDULING_ENABLED,
|
|
|
true);
|
|
|
+ fs.setRMContext(resourceManager.getRMContext());
|
|
|
+ fs.init(conf);
|
|
|
+ fs.start();
|
|
|
fs.reinitialize(conf, resourceManager.getRMContext());
|
|
|
Assert.assertTrue("Continuous scheduling should be enabled.",
|
|
|
fs.isContinuousSchedulingEnabled());
|
|
@@ -2396,6 +2495,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
QueueManager queueManager = scheduler.getQueueManager();
|
|
|
|
|
@@ -2439,6 +2540,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
out.println("</allocations>");
|
|
|
out.close();
|
|
|
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
List<QueuePlacementRule> rules = scheduler.allocConf.placementPolicy
|
|
@@ -2455,6 +2558,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
@SuppressWarnings("resource")
|
|
|
@Test
|
|
|
public void testBlacklistNodes() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
final int GB = 1024;
|
|
@@ -2507,6 +2612,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testGetAppsInQueue() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
ApplicationAttemptId appAttId1 =
|
|
@@ -2552,8 +2659,10 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testMoveRunnableApp() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
-
|
|
|
+
|
|
|
QueueManager queueMgr = scheduler.getQueueManager();
|
|
|
FSLeafQueue oldQueue = queueMgr.getLeafQueue("queue1", true);
|
|
|
FSLeafQueue targetQueue = queueMgr.getLeafQueue("queue2", true);
|
|
@@ -2591,8 +2700,10 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testMoveNonRunnableApp() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
-
|
|
|
+
|
|
|
QueueManager queueMgr = scheduler.getQueueManager();
|
|
|
FSLeafQueue oldQueue = queueMgr.getLeafQueue("queue1", true);
|
|
|
FSLeafQueue targetQueue = queueMgr.getLeafQueue("queue2", true);
|
|
@@ -2611,8 +2722,10 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test
|
|
|
public void testMoveMakesAppRunnable() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
-
|
|
|
+
|
|
|
QueueManager queueMgr = scheduler.getQueueManager();
|
|
|
FSLeafQueue oldQueue = queueMgr.getLeafQueue("queue1", true);
|
|
|
FSLeafQueue targetQueue = queueMgr.getLeafQueue("queue2", true);
|
|
@@ -2638,8 +2751,10 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test (expected = YarnException.class)
|
|
|
public void testMoveWouldViolateMaxAppsConstraints() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
-
|
|
|
+
|
|
|
QueueManager queueMgr = scheduler.getQueueManager();
|
|
|
queueMgr.getLeafQueue("queue2", true);
|
|
|
scheduler.getAllocationConfiguration().queueMaxApps.put("root.queue2", 0);
|
|
@@ -2652,8 +2767,10 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test (expected = YarnException.class)
|
|
|
public void testMoveWouldViolateMaxResourcesConstraints() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
-
|
|
|
+
|
|
|
QueueManager queueMgr = scheduler.getQueueManager();
|
|
|
FSLeafQueue oldQueue = queueMgr.getLeafQueue("queue1", true);
|
|
|
queueMgr.getLeafQueue("queue2", true);
|
|
@@ -2675,6 +2792,8 @@ public class TestFairScheduler extends FairSchedulerTestBase {
|
|
|
|
|
|
@Test (expected = YarnException.class)
|
|
|
public void testMoveToNonexistentQueue() throws Exception {
|
|
|
+ scheduler.init(conf);
|
|
|
+ scheduler.start();
|
|
|
scheduler.reinitialize(conf, resourceManager.getRMContext());
|
|
|
|
|
|
scheduler.getQueueManager().getLeafQueue("queue1", true);
|