|
@@ -279,14 +279,12 @@ public class TestCapacityScheduler {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private NodeManager
|
|
|
|
- registerNode(String hostName, int containerManagerPort, int httpPort,
|
|
|
|
- String rackName, Resource capability)
|
|
|
|
|
|
+ private NodeManager registerNode(String hostName, int containerManagerPort,
|
|
|
|
+ int httpPort, String rackName,
|
|
|
|
+ Resource capability)
|
|
throws IOException, YarnException {
|
|
throws IOException, YarnException {
|
|
- NodeManager nm =
|
|
|
|
- new NodeManager(
|
|
|
|
- hostName, containerManagerPort, httpPort, rackName, capability,
|
|
|
|
- resourceManager);
|
|
|
|
|
|
+ NodeManager nm = new NodeManager(hostName, containerManagerPort, httpPort,
|
|
|
|
+ rackName, capability, resourceManager);
|
|
NodeAddedSchedulerEvent nodeAddEvent1 =
|
|
NodeAddedSchedulerEvent nodeAddEvent1 =
|
|
new NodeAddedSchedulerEvent(resourceManager.getRMContext()
|
|
new NodeAddedSchedulerEvent(resourceManager.getRMContext()
|
|
.getRMNodes().get(nm.getNodeId()));
|
|
.getRMNodes().get(nm.getNodeId()));
|
|
@@ -301,13 +299,13 @@ public class TestCapacityScheduler {
|
|
|
|
|
|
// Register node1
|
|
// Register node1
|
|
String host_0 = "host_0";
|
|
String host_0 = "host_0";
|
|
- org.apache.hadoop.yarn.server.resourcemanager.NodeManager nm_0 =
|
|
|
|
|
|
+ NodeManager nm_0 =
|
|
registerNode(host_0, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
registerNode(host_0, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
Resources.createResource(4 * GB, 1));
|
|
Resources.createResource(4 * GB, 1));
|
|
|
|
|
|
// Register node2
|
|
// Register node2
|
|
String host_1 = "host_1";
|
|
String host_1 = "host_1";
|
|
- org.apache.hadoop.yarn.server.resourcemanager.NodeManager nm_1 =
|
|
|
|
|
|
+ NodeManager nm_1 =
|
|
registerNode(host_1, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
registerNode(host_1, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
Resources.createResource(2 * GB, 1));
|
|
Resources.createResource(2 * GB, 1));
|
|
|
|
|
|
@@ -4080,6 +4078,29 @@ public class TestCapacityScheduler {
|
|
Assert.fail("Cannot find RMContainer");
|
|
Assert.fail("Cannot find RMContainer");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ @Test
|
|
|
|
+ public void testRemovedNodeDecomissioningNode() throws Exception {
|
|
|
|
+ // Register nodemanager
|
|
|
|
+ NodeManager nm = registerNode("host_decom", 1234, 2345,
|
|
|
|
+ NetworkTopology.DEFAULT_RACK, Resources.createResource(8 * GB, 4));
|
|
|
|
+
|
|
|
|
+ RMNode node =
|
|
|
|
+ resourceManager.getRMContext().getRMNodes().get(nm.getNodeId());
|
|
|
|
+ // Send a heartbeat to kick the tires on the Scheduler
|
|
|
|
+ NodeUpdateSchedulerEvent nodeUpdate = new NodeUpdateSchedulerEvent(node);
|
|
|
|
+ resourceManager.getResourceScheduler().handle(nodeUpdate);
|
|
|
|
+
|
|
|
|
+ // force remove the node to simulate race condition
|
|
|
|
+ ((CapacityScheduler) resourceManager.getResourceScheduler()).getNodeTracker().
|
|
|
|
+ removeNode(nm.getNodeId());
|
|
|
|
+ // Kick off another heartbeat with the node state mocked to decommissioning
|
|
|
|
+ RMNode spyNode =
|
|
|
|
+ Mockito.spy(resourceManager.getRMContext().getRMNodes()
|
|
|
|
+ .get(nm.getNodeId()));
|
|
|
|
+ when(spyNode.getState()).thenReturn(NodeState.DECOMMISSIONING);
|
|
|
|
+ resourceManager.getResourceScheduler().handle(
|
|
|
|
+ new NodeUpdateSchedulerEvent(spyNode));
|
|
|
|
+ }
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void testResourceUpdateDecommissioningNode() throws Exception {
|
|
public void testResourceUpdateDecommissioningNode() throws Exception {
|
|
@@ -4106,9 +4127,8 @@ public class TestCapacityScheduler {
|
|
((AsyncDispatcher) mockDispatcher).start();
|
|
((AsyncDispatcher) mockDispatcher).start();
|
|
// Register node
|
|
// Register node
|
|
String host_0 = "host_0";
|
|
String host_0 = "host_0";
|
|
- org.apache.hadoop.yarn.server.resourcemanager.NodeManager nm_0 =
|
|
|
|
- registerNode(host_0, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
|
|
- Resources.createResource(8 * GB, 4));
|
|
|
|
|
|
+ NodeManager nm_0 = registerNode(host_0, 1234, 2345,
|
|
|
|
+ NetworkTopology.DEFAULT_RACK, Resources.createResource(8 * GB, 4));
|
|
// ResourceRequest priorities
|
|
// ResourceRequest priorities
|
|
Priority priority_0 = Priority.newInstance(0);
|
|
Priority priority_0 = Priority.newInstance(0);
|
|
|
|
|