|
@@ -18,6 +18,7 @@
|
|
|
|
|
|
package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity;
|
|
|
|
|
|
+import static org.apache.hadoop.yarn.server.resourcemanager.MockNM.createMockNodeStatus;
|
|
|
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration.MAXIMUM_ALLOCATION_MB;
|
|
|
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration.MAXIMUM_ALLOCATION_VCORES;
|
|
|
import static org.junit.Assert.assertEquals;
|
|
@@ -43,6 +44,7 @@ import java.util.concurrent.BrokenBarrierException;
|
|
|
import java.util.concurrent.CyclicBarrier;
|
|
|
|
|
|
import com.google.common.collect.Sets;
|
|
|
+import org.apache.hadoop.yarn.server.api.records.NodeStatus;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.apache.hadoop.conf.Configuration;
|
|
@@ -227,9 +229,10 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
|
|
|
|
|
|
private NodeManager registerNode(ResourceManager rm, String hostName,
|
|
|
int containerManagerPort, int httpPort, String rackName,
|
|
|
- Resource capability) throws IOException, YarnException {
|
|
|
+ Resource capability, NodeStatus nodeStatus)
|
|
|
+ throws IOException, YarnException {
|
|
|
NodeManager nm = new NodeManager(hostName,
|
|
|
- containerManagerPort, httpPort, rackName, capability, rm);
|
|
|
+ containerManagerPort, httpPort, rackName, capability, rm, nodeStatus);
|
|
|
NodeAddedSchedulerEvent nodeAddEvent1 =
|
|
|
new NodeAddedSchedulerEvent(rm.getRMContext().getRMNodes()
|
|
|
.get(nm.getNodeId()));
|
|
@@ -272,10 +275,10 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
|
|
|
|
|
|
private NodeManager registerNode(String hostName, int containerManagerPort,
|
|
|
int httpPort, String rackName,
|
|
|
- Resource capability)
|
|
|
+ Resource capability, NodeStatus nodeStatus)
|
|
|
throws IOException, YarnException {
|
|
|
NodeManager nm = new NodeManager(hostName, containerManagerPort, httpPort,
|
|
|
- rackName, capability, resourceManager);
|
|
|
+ rackName, capability, resourceManager, nodeStatus);
|
|
|
NodeAddedSchedulerEvent nodeAddEvent1 =
|
|
|
new NodeAddedSchedulerEvent(resourceManager.getRMContext()
|
|
|
.getRMNodes().get(nm.getNodeId()));
|
|
@@ -288,17 +291,19 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
|
|
|
|
|
|
LOG.info("--- START: testCapacityScheduler ---");
|
|
|
|
|
|
+ NodeStatus mockNodeStatus = createMockNodeStatus();
|
|
|
+
|
|
|
// Register node1
|
|
|
String host_0 = "host_0";
|
|
|
NodeManager nm_0 =
|
|
|
registerNode(host_0, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
|
- Resources.createResource(4 * GB, 1));
|
|
|
+ Resources.createResource(4 * GB, 1), mockNodeStatus);
|
|
|
|
|
|
// Register node2
|
|
|
String host_1 = "host_1";
|
|
|
NodeManager nm_1 =
|
|
|
registerNode(host_1, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
|
- Resources.createResource(2 * GB, 1));
|
|
|
+ Resources.createResource(2 * GB, 1), mockNodeStatus);
|
|
|
|
|
|
// ResourceRequest priorities
|
|
|
Priority priority_0 = Priority.newInstance(0);
|
|
@@ -428,11 +433,13 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
|
|
|
when(mC.getConfigurationProvider()).thenReturn(
|
|
|
new LocalConfigurationProvider());
|
|
|
|
|
|
+ NodeStatus mockNodeStatus = createMockNodeStatus();
|
|
|
+
|
|
|
// Register node1
|
|
|
String host0 = "host_0";
|
|
|
NodeManager nm0 =
|
|
|
registerNode(rm, host0, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
|
- Resources.createResource(10 * GB, 10));
|
|
|
+ Resources.createResource(10 * GB, 10), mockNodeStatus);
|
|
|
|
|
|
// ResourceRequest priorities
|
|
|
Priority priority0 = Priority.newInstance(0);
|
|
@@ -530,11 +537,13 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
|
|
|
when(mC.getConfigurationProvider()).thenReturn(
|
|
|
new LocalConfigurationProvider());
|
|
|
|
|
|
+ NodeStatus mockNodeStatus = createMockNodeStatus();
|
|
|
+
|
|
|
// Register node1
|
|
|
String host0 = "host_0";
|
|
|
NodeManager nm0 =
|
|
|
registerNode(rm, host0, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
|
- Resources.createResource(10 * GB, 10));
|
|
|
+ Resources.createResource(10 * GB, 10), mockNodeStatus);
|
|
|
|
|
|
// ResourceRequest priorities
|
|
|
Priority priority0 = Priority.newInstance(0);
|
|
@@ -1948,17 +1957,20 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
|
|
|
public void testMoveAppForMoveToQueueWithFreeCap() throws Exception {
|
|
|
|
|
|
ResourceScheduler scheduler = resourceManager.getResourceScheduler();
|
|
|
+
|
|
|
+ NodeStatus mockNodeStatus = createMockNodeStatus();
|
|
|
+
|
|
|
// Register node1
|
|
|
String host_0 = "host_0";
|
|
|
NodeManager nm_0 =
|
|
|
registerNode(host_0, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
|
- Resources.createResource(4 * GB, 1));
|
|
|
+ Resources.createResource(4 * GB, 1), mockNodeStatus);
|
|
|
|
|
|
// Register node2
|
|
|
String host_1 = "host_1";
|
|
|
NodeManager nm_1 =
|
|
|
registerNode(host_1, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
|
- Resources.createResource(2 * GB, 1));
|
|
|
+ Resources.createResource(2 * GB, 1), mockNodeStatus);
|
|
|
|
|
|
// ResourceRequest priorities
|
|
|
Priority priority_0 = Priority.newInstance(0);
|
|
@@ -2064,17 +2076,19 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
|
|
|
|
|
|
ResourceScheduler scheduler = resourceManager.getResourceScheduler();
|
|
|
|
|
|
+ NodeStatus mockNodeStatus = createMockNodeStatus();
|
|
|
+
|
|
|
// Register node1
|
|
|
String host_0 = "host_0";
|
|
|
NodeManager nm_0 =
|
|
|
registerNode(host_0, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
|
- Resources.createResource(5 * GB, 1));
|
|
|
+ Resources.createResource(5 * GB, 1), mockNodeStatus);
|
|
|
|
|
|
// Register node2
|
|
|
String host_1 = "host_1";
|
|
|
NodeManager nm_1 =
|
|
|
registerNode(host_1, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
|
- Resources.createResource(5 * GB, 1));
|
|
|
+ Resources.createResource(5 * GB, 1), mockNodeStatus);
|
|
|
|
|
|
// ResourceRequest priorities
|
|
|
Priority priority_0 = Priority.newInstance(0);
|
|
@@ -2186,11 +2200,13 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
|
|
|
|
|
|
ResourceScheduler scheduler = resourceManager.getResourceScheduler();
|
|
|
|
|
|
+ NodeStatus mockNodeStatus = createMockNodeStatus();
|
|
|
+
|
|
|
// Register node1
|
|
|
String host_0 = "host_0";
|
|
|
NodeManager nm_0 =
|
|
|
registerNode(host_0, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
|
- Resources.createResource(6 * GB, 1));
|
|
|
+ Resources.createResource(6 * GB, 1), mockNodeStatus);
|
|
|
|
|
|
// ResourceRequest priorities
|
|
|
Priority priority_0 = Priority.newInstance(0);
|
|
@@ -2234,17 +2250,19 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
|
|
|
public void testMoveAppQueueMetricsCheck() throws Exception {
|
|
|
ResourceScheduler scheduler = resourceManager.getResourceScheduler();
|
|
|
|
|
|
+ NodeStatus mockNodeStatus = createMockNodeStatus();
|
|
|
+
|
|
|
// Register node1
|
|
|
String host_0 = "host_0";
|
|
|
NodeManager nm_0 =
|
|
|
registerNode(host_0, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
|
- Resources.createResource(5 * GB, 1));
|
|
|
+ Resources.createResource(5 * GB, 1), mockNodeStatus);
|
|
|
|
|
|
// Register node2
|
|
|
String host_1 = "host_1";
|
|
|
NodeManager nm_1 =
|
|
|
registerNode(host_1, 1234, 2345, NetworkTopology.DEFAULT_RACK,
|
|
|
- Resources.createResource(5 * GB, 1));
|
|
|
+ Resources.createResource(5 * GB, 1), mockNodeStatus);
|
|
|
|
|
|
// ResourceRequest priorities
|
|
|
Priority priority_0 = Priority.newInstance(0);
|
|
@@ -4126,9 +4144,12 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
|
|
|
}
|
|
|
@Test
|
|
|
public void testRemovedNodeDecomissioningNode() throws Exception {
|
|
|
+ NodeStatus mockNodeStatus = createMockNodeStatus();
|
|
|
+
|
|
|
// Register nodemanager
|
|
|
NodeManager nm = registerNode("host_decom", 1234, 2345,
|
|
|
- NetworkTopology.DEFAULT_RACK, Resources.createResource(8 * GB, 4));
|
|
|
+ NetworkTopology.DEFAULT_RACK, Resources.createResource(8 * GB, 4),
|
|
|
+ mockNodeStatus);
|
|
|
|
|
|
RMNode node =
|
|
|
resourceManager.getRMContext().getRMNodes().get(nm.getNodeId());
|
|
@@ -4171,10 +4192,13 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
|
|
|
((CapacityScheduler) resourceManager.getResourceScheduler())
|
|
|
.setRMContext(spyContext);
|
|
|
((AsyncDispatcher) mockDispatcher).start();
|
|
|
+ NodeStatus mockNodeStatus = createMockNodeStatus();
|
|
|
+
|
|
|
// Register node
|
|
|
String host_0 = "host_0";
|
|
|
NodeManager nm_0 = registerNode(host_0, 1234, 2345,
|
|
|
- NetworkTopology.DEFAULT_RACK, Resources.createResource(8 * GB, 4));
|
|
|
+ NetworkTopology.DEFAULT_RACK, Resources.createResource(8 * GB, 4),
|
|
|
+ mockNodeStatus);
|
|
|
// ResourceRequest priorities
|
|
|
Priority priority_0 = Priority.newInstance(0);
|
|
|
|