You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by su...@apache.org on 2019/12/05 08:55:31 UTC
[hadoop] branch trunk updated: YARN-9052. Replace all MockRM submit
method definitions with a builder. Contributed by Szilard Nemeth.
This is an automated email from the ASF dual-hosted git repository.
sunilg pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new 682e6fd YARN-9052. Replace all MockRM submit method definitions with a builder. Contributed by Szilard Nemeth.
682e6fd is described below
commit 682e6fdeda68b7244e92d32cd35fe317c9b32ede
Author: Sunil G <su...@apache.org>
AuthorDate: Thu Dec 5 13:26:23 2019 +0530
YARN-9052. Replace all MockRM submit method definitions with a builder. Contributed by Szilard Nemeth.
---
.../v2/app/rm/TestRMContainerAllocator.java | 49 +--
.../client/api/impl/TestAMRMClientOnRMRestart.java | 7 +-
.../yarn/client/api/impl/TestYarnClient.java | 34 +-
.../ApplicationMasterServiceTestBase.java | 41 +-
.../hadoop/yarn/server/resourcemanager/MockRM.java | 450 +--------------------
.../resourcemanager/MockRMAppSubmissionData.java | 375 +++++++++++++++++
.../server/resourcemanager/MockRMAppSubmitter.java | 182 +++++++++
.../resourcemanager/TestAMAuthorization.java | 10 +-
.../resourcemanager/TestApplicationCleanup.java | 14 +-
.../TestApplicationMasterLauncher.java | 10 +-
.../TestApplicationMasterServiceCapacity.java | 8 +-
.../TestApplicationMasterServiceFair.java | 10 +-
.../TestApplicationMasterServiceInterceptor.java | 2 +-
.../TestCapacitySchedulerMetrics.java | 14 +-
.../resourcemanager/TestClientRMService.java | 20 +-
.../TestContainerResourceUsage.java | 21 +-
.../TestDecommissioningNodesWatcher.java | 5 +-
.../TestKillApplicationWithRMHA.java | 29 +-
.../resourcemanager/TestLeaderElectorService.java | 9 +-
.../resourcemanager/TestMoveApplication.java | 2 +-
.../TestNodeBlacklistingOnAMFailures.java | 37 +-
...stOpportunisticContainerAllocatorAMService.java | 77 +++-
.../hadoop/yarn/server/resourcemanager/TestRM.java | 30 +-
.../yarn/server/resourcemanager/TestRMHA.java | 2 +-
.../resourcemanager/TestRMHAForAsyncScheduler.java | 21 +-
.../TestRMHATimelineCollectors.java | 4 +-
.../yarn/server/resourcemanager/TestRMRestart.java | 310 +++++++++++---
.../TestResourceTrackerService.java | 20 +-
.../resourcemanager/TestSignalContainer.java | 2 +-
.../TestSubmitApplicationWithRMHA.java | 131 ++++--
.../TestWorkPreservingRMRestart.java | 158 ++++++--
.../TestWorkPreservingUnmanagedAM.java | 18 +-
.../ahs/TestRMApplicationHistoryWriter.java | 3 +-
.../TestAMRMRPCNodeUpdates.java | 7 +-
.../applicationsmanager/TestAMRMRPCResponseId.java | 3 +-
.../applicationsmanager/TestAMRestart.java | 110 ++++-
.../resource/TestResourceProfiles.java | 5 +-
.../rmapp/TestApplicationLifetimeMonitor.java | 38 +-
.../rmapp/TestNodesListManager.java | 7 +-
.../rmcontainer/TestRMContainerImpl.java | 7 +-
.../scheduler/TestAbstractYarnScheduler.java | 88 +++-
.../scheduler/TestSchedulerOvercommit.java | 11 +-
.../scheduler/TestSchedulerUtils.java | 10 +-
.../TestSchedulingWithAllocationRequestId.java | 20 +-
.../scheduler/capacity/TestApplicationLimits.java | 74 +++-
.../capacity/TestApplicationLimitsByPartition.java | 236 +++++++++--
.../capacity/TestApplicationPriority.java | 147 +++++--
.../capacity/TestCSAllocateCustomResource.java | 10 +-
.../scheduler/capacity/TestCapacityScheduler.java | 328 +++++++++++++--
.../TestCapacitySchedulerAsyncScheduling.java | 157 ++++++-
.../TestCapacitySchedulerAutoCreatedQueueBase.java | 28 +-
.../TestCapacitySchedulerAutoQueueCreation.java | 37 +-
.../TestCapacitySchedulerDynamicBehavior.java | 22 +-
.../TestCapacitySchedulerLazyPreemption.java | 122 +++++-
.../capacity/TestCapacitySchedulerMultiNodes.java | 54 ++-
.../TestCapacitySchedulerNodeLabelUpdate.java | 82 +++-
...stCapacitySchedulerSchedulingRequestUpdate.java | 42 +-
.../TestCapacitySchedulerSurgicalPreemption.java | 202 ++++++++-
...estCapacitySchedulerWithMultiResourceTypes.java | 10 +-
...stCapacitySchedulerWorkflowPriorityMapping.java | 68 +++-
.../capacity/TestContainerAllocation.java | 267 ++++++++++--
.../scheduler/capacity/TestContainerResizing.java | 102 ++++-
.../capacity/TestIncreaseAllocationExpirer.java | 42 +-
.../capacity/TestNodeLabelContainerAllocation.java | 450 ++++++++++++++++++---
.../scheduler/capacity/TestQueueState.java | 12 +-
.../TestSchedulingRequestContainerAllocation.java | 117 +++++-
...tSchedulingRequestContainerAllocationAsync.java | 12 +-
.../TestWorkPreservingRMRestartForNodeLabel.java | 32 +-
.../constraint/TestPlacementProcessor.java | 102 ++++-
.../fair/TestApplicationMasterServiceWithFS.java | 12 +-
.../scheduler/fair/TestFairScheduler.java | 12 +-
.../scheduler/fifo/TestFifoScheduler.java | 11 +-
.../scheduler/policy/TestFairOrderingPolicy.java | 42 +-
.../resourcemanager/security/TestAMRMTokens.java | 7 +-
.../security/TestClientToAMTokens.java | 5 +-
.../security/TestDelegationTokenRenewer.java | 116 +++++-
.../volume/csi/TestVolumeProcessor.java | 40 +-
.../webapp/TestRMWebServiceAppsNodelabel.java | 14 +-
.../webapp/TestRMWebServicesAppAttempts.java | 38 +-
.../TestRMWebServicesAppCustomResourceTypes.java | 16 +-
.../webapp/TestRMWebServicesApps.java | 238 +++++++----
.../TestRMWebServicesAppsCustomResourceTypes.java | 16 +-
.../webapp/TestRMWebServicesAppsModification.java | 72 +++-
.../webapp/TestRMWebServicesCapacitySched.java | 42 +-
.../webapp/TestRMWebServicesContainers.java | 5 +-
.../TestRMWebServicesForCSWithPartitions.java | 11 +-
.../TestRMWebServicesSchedulerActivities.java | 202 ++++++++-
...esSchedulerActivitiesWithMultiNodesEnabled.java | 58 ++-
88 files changed, 4846 insertions(+), 1277 deletions(-)
diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/rm/TestRMContainerAllocator.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/rm/TestRMContainerAllocator.java
index 4b5fa0a..7579887 100644
--- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/rm/TestRMContainerAllocator.java
+++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/rm/TestRMContainerAllocator.java
@@ -130,6 +130,7 @@ import org.apache.hadoop.yarn.server.api.protocolrecords.NodeHeartbeatResponse;
import org.apache.hadoop.yarn.server.api.records.NodeAction;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.recovery.MemoryRMStateStore;
import org.apache.hadoop.yarn.server.resourcemanager.recovery.RMStateStore;
@@ -189,7 +190,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 2048);
@@ -277,7 +278,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 2048);
@@ -358,7 +359,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 2048);
@@ -422,7 +423,7 @@ public class TestRMContainerAllocator {
conf.setFloat(MRJobConfig.COMPLETED_MAPS_FOR_REDUCE_SLOWSTART, 0.0f);
final MyResourceManager rm = new MyResourceManager(conf);
rm.start();
- final RMApp app = rm.submitApp(1024);
+ final RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
final String host = "host1";
@@ -478,7 +479,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 2048);
@@ -530,7 +531,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 2048);
@@ -594,7 +595,7 @@ public class TestRMContainerAllocator {
rm.getMyFifoScheduler().forceResourceLimit(Resource.newInstance(8192, 8));
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 2048);
@@ -648,7 +649,7 @@ public class TestRMContainerAllocator {
conf.setFloat(MRJobConfig.COMPLETED_MAPS_FOR_REDUCE_SLOWSTART, 0.0f);
final MyResourceManager2 rm = new MyResourceManager2(conf);
rm.start();
- final RMApp app = rm.submitApp(2048);
+ final RMApp app = MockRMAppSubmitter.submitWithMemory(2048, rm);
rm.drainEvents();
final String host = "host1";
final MockNM nm = rm.registerNode(String.format("%s:1234", host), 4096);
@@ -879,7 +880,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 2048);
@@ -1011,7 +1012,7 @@ public class TestRMContainerAllocator {
.getDispatcher();
// Submit the application
- RMApp rmApp = rm.submitApp(1024);
+ RMApp rmApp = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 21504);
@@ -1163,7 +1164,7 @@ public class TestRMContainerAllocator {
.getDispatcher();
// Submit the application
- RMApp rmApp = rm.submitApp(1024);
+ RMApp rmApp = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 11264);
@@ -1256,7 +1257,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 2048);
amNodeManager.nodeHeartbeat(true);
@@ -1351,7 +1352,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 2048);
@@ -1460,7 +1461,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM[] nodeManagers = new MockNM[10];
@@ -1649,7 +1650,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 2048);
@@ -2322,7 +2323,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
// Make a node to register so as to launch the AM.
@@ -2496,7 +2497,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp rmApp = rm.submitApp(1024);
+ RMApp rmApp = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("127.0.0.1:1234", 11264);
@@ -2564,7 +2565,7 @@ public class TestRMContainerAllocator {
rm1.start();
// Submit the application
- RMApp app = rm1.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm1);
rm1.drainEvents();
MockNM nm1 = new MockNM("h1:1234", 15120, rm1.getResourceTrackerService());
@@ -2817,7 +2818,7 @@ public class TestRMContainerAllocator {
MyResourceManager rm1 = new MyResourceManager(conf);
rm1.start();
- RMApp app = rm1.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm1);
rm1.drainEvents();
MockNM nm1 = new MockNM("h1:1234", 15120, rm1.getResourceTrackerService());
@@ -2869,7 +2870,7 @@ public class TestRMContainerAllocator {
rm.getRMContext().getAMRMTokenSecretManager();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 2048);
@@ -3141,7 +3142,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 2048);
@@ -3175,7 +3176,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 1260);
@@ -3346,7 +3347,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 1260);
@@ -3480,7 +3481,7 @@ public class TestRMContainerAllocator {
rm.start();
// Submit the application
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
rm.drainEvents();
MockNM amNodeManager = rm.registerNode("amNM:1234", 1260);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestAMRMClientOnRMRestart.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestAMRMClientOnRMRestart.java
index 5104866..4adca73 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestAMRMClientOnRMRestart.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestAMRMClientOnRMRestart.java
@@ -58,6 +58,7 @@ import org.apache.hadoop.yarn.server.api.records.NodeAction;
import org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.recovery.MemoryRMStateStore;
import org.apache.hadoop.yarn.server.resourcemanager.recovery.RMStateStore;
@@ -127,7 +128,7 @@ public class TestAMRMClientOnRMRestart {
rm1.start();
// Submit the application
- RMApp app = rm1.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm1);
rm1.drainEvents();
MockNM nm1 = new MockNM("h1:1234", 15120, rm1.getResourceTrackerService());
@@ -356,7 +357,7 @@ public class TestAMRMClientOnRMRestart {
rm1.start();
// Submit the application
- RMApp app = rm1.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm1);
rm1.drainEvents();
MockNM nm1 = new MockNM("h1:1234", 15120, rm1.getResourceTrackerService());
@@ -433,7 +434,7 @@ public class TestAMRMClientOnRMRestart {
rm1.start();
Long startTime = System.currentTimeMillis();
// Submit the application
- RMApp app = rm1.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm1);
rm1.drainEvents();
MockNM nm1 = new MockNM("h1:1234", 15120, rm1.getResourceTrackerService());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestYarnClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestYarnClient.java
index 4af97e4..4c9d46e 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestYarnClient.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestYarnClient.java
@@ -68,6 +68,8 @@ import org.apache.hadoop.yarn.exceptions.ContainerNotFoundException;
import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.hadoop.yarn.server.MiniYARNCluster;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.ParameterizedSchedulerTestBase;
import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -368,7 +370,7 @@ public class TestYarnClient extends ParameterizedSchedulerTestBase {
public void testKillApplication() throws Exception {
MockRM rm = new MockRM();
rm.start();
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
@SuppressWarnings("resource")
final YarnClient client = new MockYarnClient();
@@ -385,11 +387,19 @@ public class TestYarnClient extends ParameterizedSchedulerTestBase {
GenericTestUtils.setRootLogLevel(Level.DEBUG);
MockRM rm = new MockRM();
rm.start();
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
RMApp app1 =
- rm.submitApp(200, "name", "user",
- new HashMap<>(), false, "default", -1,
- null, "MAPREDUCE");
+ MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("MAPREDUCE")
+ .build());
Assert.assertEquals("YARN", app.getApplicationType());
Assert.assertEquals("MAPREDUCE", app1.getApplicationType());
rm.stop();
@@ -401,9 +411,17 @@ public class TestYarnClient extends ParameterizedSchedulerTestBase {
MockRM rm = new MockRM();
rm.start();
RMApp app1 =
- rm.submitApp(200, "name", "user",
- new HashMap<>(), false, "default", -1,
- null, "MAPREDUCE-LENGTH-IS-20");
+ MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("MAPREDUCE-LENGTH-IS-20")
+ .build());
Assert.assertEquals("MAPREDUCE-LENGTH-IS-", app1.getApplicationType());
rm.stop();
}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/ApplicationMasterServiceTestBase.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/ApplicationMasterServiceTestBase.java
index 80dbb84..f13ae4a 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/ApplicationMasterServiceTestBase.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/ApplicationMasterServiceTestBase.java
@@ -135,7 +135,7 @@ public abstract class ApplicationMasterServiceTestBase {
MockNM nm1 = rm.registerNode(DEFAULT_HOST + ":" + DEFAULT_PORT, 6 * GB);
// Submit an application
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
// kick the scheduling
nm1.nodeHeartbeat(true);
@@ -176,7 +176,7 @@ public abstract class ApplicationMasterServiceTestBase {
MockNM nm1 = rm.registerNode(DEFAULT_HOST + ":" + DEFAULT_PORT, 6 * GB);
// Submit an application
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
// kick off the scheduling
nm1.nodeHeartbeat(true);
@@ -210,7 +210,7 @@ public abstract class ApplicationMasterServiceTestBase {
MockNM nm1 = rm.registerNode(DEFAULT_HOST + ":" + DEFAULT_PORT, 6 * GB);
// Submit an application
- RMApp app1 = rm.submitApp(1024);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(1024, rm);
// kick the scheduling
nm1.nodeHeartbeat(true);
@@ -231,7 +231,7 @@ public abstract class ApplicationMasterServiceTestBase {
Assert.assertTrue(alloc1Response.getAllocatedContainers().size() > 0);
- RMApp app2 = rm.submitApp(1024);
+ RMApp app2 = MockRMAppSubmitter.submitWithMemory(1024, rm);
nm1.nodeHeartbeat(true);
RMAppAttempt attempt2 = app2.getCurrentAppAttempt();
@@ -265,7 +265,7 @@ public abstract class ApplicationMasterServiceTestBase {
MockNM nm1 = rm.registerNode(DEFAULT_HOST + ":" + DEFAULT_PORT, 6 * GB);
// Submit an application
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
nm1.nodeHeartbeat(true);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
@@ -330,7 +330,7 @@ public abstract class ApplicationMasterServiceTestBase {
// Register node1
MockNM nm1 = rm.registerNode(DEFAULT_HOST + ":" + DEFAULT_PORT, 6 * GB);
// Submit an application
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
MockAM am1 = MockRM.launchAM(app1, rm, nm1);
FinishApplicationMasterRequest req =
FinishApplicationMasterRequest.newInstance(
@@ -374,7 +374,8 @@ public abstract class ApplicationMasterServiceTestBase {
// Register node1
MockNM nm1 = rm.registerNode(DEFAULT_HOST + ":" + DEFAULT_PORT, 6 * GB);
// Submit an application
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(2048, rm).build());
MockAM am1 = MockRM.launchAM(app1, rm, nm1);
am1.registerAppAttempt();
FinishApplicationMasterRequest req = FinishApplicationMasterRequest
@@ -449,7 +450,7 @@ public abstract class ApplicationMasterServiceTestBase {
MockRM rm = new MockRM(entry.getKey());
rm.start();
MockNM nm1 = rm.registerNode(DEFAULT_HOST + ":" + DEFAULT_PORT, 6 * GB);
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
//Wait to make sure the attempt has the right state
//TODO explore a better way than sleeping for a while (YARN-4929)
Thread.sleep(1000);
@@ -473,7 +474,7 @@ public abstract class ApplicationMasterServiceTestBase {
MockNM nm1 = rm.registerNode(DEFAULT_HOST + ":" + DEFAULT_PORT, 6 * GB);
// Submit an application
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
nm1.nodeHeartbeat(true);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
@@ -504,7 +505,7 @@ public abstract class ApplicationMasterServiceTestBase {
// Register node1
MockNM nm1 = rm.registerNode(DEFAULT_HOST + ":" + DEFAULT_PORT, 6 * GB);
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
nm1.nodeHeartbeat(true);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
@@ -554,7 +555,15 @@ public abstract class ApplicationMasterServiceTestBase {
.createResource(DEFAULT_RM_SCHEDULER_MAXIMUM_ALLOCATION_MB,
DEFAULT_RM_SCHEDULER_MAXIMUM_ALLOCATION_VCORES, null));
- RMApp app1 = rm.submitApp(GB, "app", "user", null, getDefaultQueueName());
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue(getDefaultQueueName())
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
// Now request resource, memory > allowed
@@ -611,7 +620,15 @@ public abstract class ApplicationMasterServiceTestBase {
DEFAULT_RM_SCHEDULER_MAXIMUM_ALLOCATION_VCORES,
ImmutableMap.of(CUSTOM_RES, 4)));
- RMApp app1 = rm.submitApp(GB, "app", "user", null, getDefaultQueueName());
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue(getDefaultQueueName())
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
Assert.assertEquals(Resource.newInstance(GB, 1),
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java
index 9bbd148..b3888c3 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java
@@ -18,24 +18,10 @@
package org.apache.hadoop.yarn.server.resourcemanager;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.security.PrivilegedExceptionAction;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.EnumSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.io.DataOutputBuffer;
-import org.apache.hadoop.test.GenericTestUtils;
import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
-import org.apache.hadoop.security.Credentials;
-import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.security.token.Token;
+import org.apache.hadoop.test.GenericTestUtils;
import org.apache.hadoop.yarn.api.ApplicationClientProtocol;
import org.apache.hadoop.yarn.api.protocolrecords.FailApplicationAttemptRequest;
import org.apache.hadoop.yarn.api.protocolrecords.FailApplicationAttemptResponse;
@@ -48,25 +34,16 @@ import org.apache.hadoop.yarn.api.protocolrecords.KillApplicationRequest;
import org.apache.hadoop.yarn.api.protocolrecords.KillApplicationResponse;
import org.apache.hadoop.yarn.api.protocolrecords.ReservationUpdateRequest;
import org.apache.hadoop.yarn.api.protocolrecords.SignalContainerRequest;
-import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
-import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationResponse;
-import org.apache.hadoop.yarn.api.records.ApplicationAccessType;
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ApplicationReport;
-import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
-import org.apache.hadoop.yarn.api.records.ApplicationTimeoutType;
import org.apache.hadoop.yarn.api.records.ContainerId;
-import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
import org.apache.hadoop.yarn.api.records.ContainerState;
import org.apache.hadoop.yarn.api.records.ContainerStatus;
import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
-import org.apache.hadoop.yarn.api.records.LogAggregationContext;
import org.apache.hadoop.yarn.api.records.NodeId;
import org.apache.hadoop.yarn.api.records.NodeState;
-import org.apache.hadoop.yarn.api.records.Priority;
import org.apache.hadoop.yarn.api.records.Resource;
-import org.apache.hadoop.yarn.api.records.ResourceRequest;
import org.apache.hadoop.yarn.api.records.SignalContainerCommand;
import org.apache.hadoop.yarn.api.resource.PlacementConstraint;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
@@ -112,10 +89,18 @@ import org.apache.hadoop.yarn.server.resourcemanager.security.RMContainerTokenSe
import org.apache.hadoop.yarn.util.Records;
import org.apache.hadoop.yarn.util.YarnVersionInfo;
import org.apache.hadoop.yarn.util.resource.ResourceUtils;
-import org.slf4j.event.Level;
+import org.junit.Assert;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.junit.Assert;
+import org.slf4j.event.Level;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
@SuppressWarnings("unchecked")
@@ -514,408 +499,6 @@ public class MockRM extends ResourceManager {
.newRecord(GetNewApplicationRequest.class));
}
- public RMApp submitApp(int masterMemory) throws Exception {
- return submitApp(masterMemory, false);
- }
-
- public RMApp submitApp(int masterMemory, String queue) throws Exception {
- return submitApp(masterMemory, "",
- UserGroupInformation.getCurrentUser().getShortUserName(), null, false,
- queue, super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS),
- null);
- }
-
- public RMApp submitApp(int masterMemory, Set<String> appTags)
- throws Exception {
- return submitApp(masterMemory, null, false, null, Priority.newInstance(0),
- appTags);
- }
-
- public RMApp submitApp(int masterMemory, String queue,
- boolean isAppIdProvided, ApplicationId appId, Priority priority,
- Set<String> appTags) throws Exception {
- Resource resource = Resource.newInstance(masterMemory, 0);
- ResourceRequest amResourceRequest = ResourceRequest.newInstance(
- Priority.newInstance(0), ResourceRequest.ANY, resource, 1);
- return submitApp(Collections.singletonList(amResourceRequest), "",
- UserGroupInformation.getCurrentUser().getShortUserName(), null, false,
- queue, super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null, true,
- false, isAppIdProvided, appId, 0, null, true, priority, null,
- null, null, appTags);
- }
-
- public RMApp submitApp(int masterMemory, Priority priority) throws Exception {
- Resource resource = Resource.newInstance(masterMemory, 0);
- return submitApp(resource, "", UserGroupInformation.getCurrentUser()
- .getShortUserName(), null, false, null,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null, true,
- false, false, null, 0, null, true, priority);
- }
-
- public RMApp submitApp(int masterMemory, Priority priority,
- Credentials cred, ByteBuffer tokensConf) throws Exception {
- Resource resource = Resource.newInstance(masterMemory, 0);
- return submitApp(resource, "", UserGroupInformation.getCurrentUser()
- .getShortUserName(), null, false, null,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), cred, null, true,
- false, false, null, 0, null, true, priority, null, null,
- tokensConf);
- }
-
- public RMApp submitApp(int masterMemory, boolean unmanaged)
- throws Exception {
- return submitApp(masterMemory, "", UserGroupInformation.getCurrentUser()
- .getShortUserName(), unmanaged);
- }
-
- // client
- public RMApp submitApp(int masterMemory, String name, String user) throws Exception {
- return submitApp(masterMemory, name, user, false);
- }
-
- public RMApp submitApp(int masterMemory, String name, String user,
- boolean unmanaged)
- throws Exception {
- return submitApp(masterMemory, name, user, null, unmanaged, null,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null);
- }
-
- public RMApp submitApp(int masterMemory, String name, String user,
- Map<ApplicationAccessType, String> acls) throws Exception {
- return submitApp(masterMemory, name, user, acls, false, null,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null);
- }
-
- public RMApp submitApp(int masterMemory, String name, String user,
- Map<ApplicationAccessType, String> acls, String queue) throws Exception {
- return submitApp(masterMemory, name, user, acls, false, queue,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null);
- }
-
- public RMApp submitApp(int masterMemory, String name, String user,
- Map<ApplicationAccessType, String> acls, String queue, String amLabel)
- throws Exception {
- Resource resource = Records.newRecord(Resource.class);
- resource.setMemorySize(masterMemory);
- Priority priority = Priority.newInstance(0);
- return submitApp(resource, name, user, acls, false, queue,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null, true, false,
- false, null, 0, null, true, priority, amLabel, null, null);
- }
-
- public RMApp submitApp(Resource resource, String name, String user,
- Map<ApplicationAccessType, String> acls, String queue) throws Exception {
- return submitApp(resource, name, user, acls, false, queue,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null,
- true, false, false, null, 0, null, true, null);
- }
-
- public RMApp submitApp(Resource resource, String name, String user,
- Map<ApplicationAccessType, String> acls, boolean unManaged, String queue)
- throws Exception {
- return submitApp(resource, name, user, acls, unManaged, queue,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null, true,
- false, false, null, 0, null, true, null);
- }
-
- public RMApp submitApp(int masterMemory, String name, String user,
- Map<ApplicationAccessType, String> acls, String queue,
- boolean waitForAccepted) throws Exception {
- return submitApp(masterMemory, name, user, acls, false, queue,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null,
- waitForAccepted);
- }
-
- public RMApp submitApp(int masterMemory, String name, String user,
- Map<ApplicationAccessType, String> acls, boolean unmanaged, String queue,
- int maxAppAttempts, Credentials ts) throws Exception {
- return submitApp(masterMemory, name, user, acls, unmanaged, queue,
- maxAppAttempts, ts, null);
- }
-
- public RMApp submitApp(int masterMemory, String name, String user,
- Map<ApplicationAccessType, String> acls, boolean unmanaged, String queue,
- int maxAppAttempts, Credentials ts, String appType) throws Exception {
- return submitApp(masterMemory, name, user, acls, unmanaged, queue,
- maxAppAttempts, ts, appType, true);
- }
-
- public RMApp submitApp(int masterMemory, String name, String user,
- Map<ApplicationAccessType, String> acls, boolean unmanaged, String queue,
- int maxAppAttempts, Credentials ts, String appType,
- boolean waitForAccepted)
- throws Exception {
- return submitApp(masterMemory, name, user, acls, unmanaged, queue,
- maxAppAttempts, ts, appType, waitForAccepted, false);
- }
-
- public RMApp submitApp(int masterMemory, String name, String user,
- Map<ApplicationAccessType, String> acls, boolean unmanaged, String queue,
- int maxAppAttempts, Credentials ts, String appType,
- boolean waitForAccepted, boolean keepContainers) throws Exception {
- Resource resource = Records.newRecord(Resource.class);
- resource.setMemorySize(masterMemory);
- return submitApp(resource, name, user, acls, unmanaged, queue,
- maxAppAttempts, ts, appType, waitForAccepted, keepContainers,
- false, null, 0, null, true, Priority.newInstance(0));
- }
-
- public RMApp submitApp(int masterMemory, long attemptFailuresValidityInterval,
- boolean keepContainers) throws Exception {
- Resource resource = Records.newRecord(Resource.class);
- resource.setMemorySize(masterMemory);
- Priority priority = Priority.newInstance(0);
- return submitApp(resource, "", UserGroupInformation.getCurrentUser()
- .getShortUserName(), null, false, null,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null, true, keepContainers,
- false, null, attemptFailuresValidityInterval, null, true, priority);
- }
-
- public RMApp submitApp(int masterMemory, String name, String user,
- Map<ApplicationAccessType, String> acls, boolean unmanaged, String queue,
- int maxAppAttempts, Credentials ts, String appType,
- boolean waitForAccepted, boolean keepContainers, boolean isAppIdProvided,
- ApplicationId applicationId) throws Exception {
- Resource resource = Records.newRecord(Resource.class);
- resource.setMemorySize(masterMemory);
- Priority priority = Priority.newInstance(0);
- return submitApp(resource, name, user, acls, unmanaged, queue,
- maxAppAttempts, ts, appType, waitForAccepted, keepContainers,
- isAppIdProvided, applicationId, 0, null, true, priority);
- }
-
- public RMApp submitApp(int masterMemory,
- LogAggregationContext logAggregationContext) throws Exception {
- Resource resource = Records.newRecord(Resource.class);
- resource.setMemorySize(masterMemory);
- Priority priority = Priority.newInstance(0);
- return submitApp(resource, "", UserGroupInformation.getCurrentUser()
- .getShortUserName(), null, false, null,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null, true, false,
- false, null, 0, logAggregationContext, true, priority);
- }
-
- public RMApp submitApp(Resource capability, String name, String user,
- Map<ApplicationAccessType, String> acls, boolean unmanaged, String queue,
- int maxAppAttempts, Credentials ts, String appType,
- boolean waitForAccepted, boolean keepContainers, boolean isAppIdProvided,
- ApplicationId applicationId, long attemptFailuresValidityInterval,
- LogAggregationContext logAggregationContext,
- boolean cancelTokensWhenComplete, Priority priority) throws Exception {
- return submitApp(capability, name, user, acls, unmanaged, queue,
- maxAppAttempts, ts, appType, waitForAccepted, keepContainers,
- isAppIdProvided, applicationId, attemptFailuresValidityInterval,
- logAggregationContext, cancelTokensWhenComplete, priority, "", null,
- null);
- }
-
- public RMApp submitApp(Credentials cred, ByteBuffer tokensConf)
- throws Exception {
- return submitApp(Resource.newInstance(200, 1), "app1", "user", null, false,
- null, super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), cred, null, true,
- false, false, null, 0, null, true, Priority.newInstance(0), null, null,
- tokensConf);
- }
-
- public RMApp submitApp(List<ResourceRequest> amResourceRequests)
- throws Exception {
- return submitApp(amResourceRequests, "app1",
- "user", null, false, null,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null, true,
- false, false, null, 0, null, true,
- amResourceRequests.get(0).getPriority(),
- amResourceRequests.get(0).getNodeLabelExpression(), null, null);
- }
-
- public RMApp submitApp(List<ResourceRequest> amResourceRequests,
- String appNodeLabel) throws Exception {
- return submitApp(amResourceRequests, "app1", "user", null, false, null,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null, true,
- false, false, null, 0, null, true,
- amResourceRequests.get(0).getPriority(),
- amResourceRequests.get(0).getNodeLabelExpression(), null, null, null,
- appNodeLabel);
- }
-
- public RMApp submitApp(Resource capability, String name, String user,
- Map<ApplicationAccessType, String> acls, boolean unmanaged, String queue,
- int maxAppAttempts, Credentials ts, String appType,
- boolean waitForAccepted, boolean keepContainers, boolean isAppIdProvided,
- ApplicationId applicationId, long attemptFailuresValidityInterval,
- LogAggregationContext logAggregationContext,
- boolean cancelTokensWhenComplete, Priority priority, String amLabel,
- Map<ApplicationTimeoutType, Long> applicationTimeouts,
- ByteBuffer tokensConf)
- throws Exception {
- priority = (priority == null) ? Priority.newInstance(0) : priority;
- ResourceRequest amResourceRequest = ResourceRequest.newInstance(
- priority, ResourceRequest.ANY, capability, 1);
- if (amLabel != null && !amLabel.isEmpty()) {
- amResourceRequest.setNodeLabelExpression(amLabel.trim());
- }
- return submitApp(Collections.singletonList(amResourceRequest), name, user,
- acls, unmanaged, queue, maxAppAttempts, ts, appType, waitForAccepted,
- keepContainers, isAppIdProvided, applicationId,
- attemptFailuresValidityInterval, logAggregationContext,
- cancelTokensWhenComplete, priority, amLabel, applicationTimeouts,
- tokensConf);
- }
-
- public RMApp submitApp(List<ResourceRequest> amResourceRequests, String name,
- String user, Map<ApplicationAccessType, String> acls, boolean unmanaged,
- String queue, int maxAppAttempts, Credentials ts, String appType,
- boolean waitForAccepted, boolean keepContainers, boolean isAppIdProvided,
- ApplicationId applicationId, long attemptFailuresValidityInterval,
- LogAggregationContext logAggregationContext,
- boolean cancelTokensWhenComplete, Priority priority, String amLabel,
- Map<ApplicationTimeoutType, Long> applicationTimeouts,
- ByteBuffer tokensConf) throws Exception {
- return submitApp(amResourceRequests, name, user, acls, unmanaged, queue,
- maxAppAttempts, ts, appType, waitForAccepted, keepContainers,
- isAppIdProvided, applicationId, attemptFailuresValidityInterval,
- logAggregationContext, cancelTokensWhenComplete, priority, amLabel,
- applicationTimeouts, tokensConf, null);
- }
-
- public RMApp submitApp(List<ResourceRequest> amResourceRequests, String name,
- String user, Map<ApplicationAccessType, String> acls, boolean unmanaged,
- String queue, int maxAppAttempts, Credentials ts, String appType,
- boolean waitForAccepted, boolean keepContainers, boolean isAppIdProvided,
- ApplicationId applicationId, long attemptFailuresValidityInterval,
- LogAggregationContext logAggregationContext,
- boolean cancelTokensWhenComplete, Priority priority, String amLabel,
- Map<ApplicationTimeoutType, Long> applicationTimeouts,
- ByteBuffer tokensConf, Set<String> applicationTags) throws Exception {
- return submitApp(amResourceRequests, name, user, acls, unmanaged, queue,
- maxAppAttempts, ts, appType, waitForAccepted, keepContainers,
- isAppIdProvided, applicationId, attemptFailuresValidityInterval,
- logAggregationContext, cancelTokensWhenComplete, priority, amLabel,
- applicationTimeouts, tokensConf, applicationTags, null);
- }
-
- public RMApp submitApp(List<ResourceRequest> amResourceRequests, String name,
- String user, Map<ApplicationAccessType, String> acls, boolean unmanaged,
- String queue, int maxAppAttempts, Credentials ts, String appType,
- boolean waitForAccepted, boolean keepContainers, boolean isAppIdProvided,
- ApplicationId applicationId, long attemptFailuresValidityInterval,
- LogAggregationContext logAggregationContext,
- boolean cancelTokensWhenComplete, Priority priority, String amLabel,
- Map<ApplicationTimeoutType, Long> applicationTimeouts,
- ByteBuffer tokensConf, Set<String> applicationTags, String appNodeLabel)
- throws Exception {
- ApplicationId appId = isAppIdProvided ? applicationId : null;
- ApplicationClientProtocol client = getClientRMService();
- if (! isAppIdProvided) {
- GetNewApplicationResponse resp = client.getNewApplication(Records
- .newRecord(GetNewApplicationRequest.class));
- appId = resp.getApplicationId();
- }
- SubmitApplicationRequest req = Records
- .newRecord(SubmitApplicationRequest.class);
- ApplicationSubmissionContext sub = Records
- .newRecord(ApplicationSubmissionContext.class);
- sub.setKeepContainersAcrossApplicationAttempts(keepContainers);
- sub.setApplicationId(appId);
- sub.setApplicationName(name);
- sub.setMaxAppAttempts(maxAppAttempts);
- if (applicationTags != null) {
- sub.setApplicationTags(applicationTags);
- }
- if (applicationTimeouts != null && applicationTimeouts.size() > 0) {
- sub.setApplicationTimeouts(applicationTimeouts);
- }
- if (unmanaged) {
- sub.setUnmanagedAM(true);
- }
- if (queue != null) {
- sub.setQueue(queue);
- }
- if (priority != null) {
- sub.setPriority(priority);
- }
- if (appNodeLabel != null) {
- sub.setNodeLabelExpression(appNodeLabel);
- }
- sub.setApplicationType(appType);
- ContainerLaunchContext clc = Records
- .newRecord(ContainerLaunchContext.class);
- clc.setApplicationACLs(acls);
- if (ts != null && UserGroupInformation.isSecurityEnabled()) {
- DataOutputBuffer dob = new DataOutputBuffer();
- ts.writeTokenStorageToStream(dob);
- ByteBuffer securityTokens = ByteBuffer.wrap(dob.getData(), 0, dob.getLength());
- clc.setTokens(securityTokens);
- clc.setTokensConf(tokensConf);
- }
- sub.setAMContainerSpec(clc);
- sub.setAttemptFailuresValidityInterval(attemptFailuresValidityInterval);
- if (logAggregationContext != null) {
- sub.setLogAggregationContext(logAggregationContext);
- }
- sub.setCancelTokensWhenComplete(cancelTokensWhenComplete);
- if (amLabel != null && !amLabel.isEmpty()) {
- for (ResourceRequest amResourceRequest : amResourceRequests) {
- amResourceRequest.setNodeLabelExpression(amLabel.trim());
- }
- }
- sub.setAMContainerResourceRequests(amResourceRequests);
- req.setApplicationSubmissionContext(sub);
- UserGroupInformation fakeUser =
- UserGroupInformation.createUserForTesting(user, new String[] {"someGroup"});
- PrivilegedExceptionAction<SubmitApplicationResponse> action =
- new PrivilegedExceptionAction<SubmitApplicationResponse>() {
- ApplicationClientProtocol client;
- SubmitApplicationRequest req;
- @Override
- public SubmitApplicationResponse run() throws IOException, YarnException {
- try {
- return client.submitApplication(req);
- } catch (YarnException | IOException e) {
- e.printStackTrace();
- throw e;
- }
- }
- PrivilegedExceptionAction<SubmitApplicationResponse> setClientReq(
- ApplicationClientProtocol client, SubmitApplicationRequest req) {
- this.client = client;
- this.req = req;
- return this;
- }
- }.setClientReq(client, req);
- fakeUser.doAs(action);
- // make sure app is immediately available after submit
- if (waitForAccepted) {
- waitForState(appId, RMAppState.ACCEPTED);
- }
- RMApp rmApp = getRMContext().getRMApps().get(appId);
-
- // unmanaged AM won't go to RMAppAttemptState.SCHEDULED.
- if (waitForAccepted && !unmanaged) {
- waitForState(rmApp.getCurrentAppAttempt().getAppAttemptId(),
- RMAppAttemptState.SCHEDULED);
- }
-
- ((AbstractYarnScheduler)getResourceScheduler()).update();
-
- return rmApp;
- }
-
public MockNM unRegisterNode(MockNM nm) throws Exception {
nm.unRegisterNode();
drainEventsImplicitly();
@@ -1424,17 +1007,6 @@ public class MockRM extends ResourceManager {
disableDrainEventsImplicitly = false;
}
- public RMApp submitApp(int masterMemory, Priority priority,
- Map<ApplicationTimeoutType, Long> applicationTimeouts) throws Exception {
- Resource resource = Resource.newInstance(masterMemory, 0);
- return submitApp(
- resource, "", UserGroupInformation.getCurrentUser().getShortUserName(),
- null, false, null,
- super.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null, true,
- false, false, null, 0, null, true, priority, null, applicationTimeouts,
- null);
- }
@Override
protected void serviceInit(Configuration conf) throws Exception {
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRMAppSubmissionData.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRMAppSubmissionData.java
new file mode 100644
index 0000000..212421b
--- /dev/null
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRMAppSubmissionData.java
@@ -0,0 +1,375 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.yarn.server.resourcemanager;
+
+import org.apache.hadoop.security.Credentials;
+import org.apache.hadoop.security.UserGroupInformation;
+import org.apache.hadoop.yarn.api.records.ApplicationAccessType;
+import org.apache.hadoop.yarn.api.records.ApplicationId;
+import org.apache.hadoop.yarn.api.records.ApplicationTimeoutType;
+import org.apache.hadoop.yarn.api.records.LogAggregationContext;
+import org.apache.hadoop.yarn.api.records.Priority;
+import org.apache.hadoop.yarn.api.records.Resource;
+import org.apache.hadoop.yarn.api.records.ResourceRequest;
+import org.apache.hadoop.yarn.conf.YarnConfiguration;
+import org.apache.hadoop.yarn.util.Records;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * This class holds all data fields to submit an RM Application.
+ * Use the {@link Builder} class to compile necessary data for app submission.
+ */
+public final class MockRMAppSubmissionData {
+ private final List<ResourceRequest> amResourceRequests;
+ private final String name;
+ private final String user;
+ private final Map<ApplicationAccessType, String> acls;
+ private final boolean unmanaged;
+ private final String queue;
+ private final int maxAppAttempts;
+ private final String appType;
+ private final boolean waitForAccepted;
+ private final boolean keepContainers;
+ private final boolean isAppIdProvided;
+ private final ApplicationId applicationId;
+ private final long attemptFailuresValidityInterval;
+ private final LogAggregationContext logAggregationContext;
+ private final boolean cancelTokensWhenComplete;
+ private final Priority priority;
+ private final String amLabel;
+ private final Map<ApplicationTimeoutType, Long> applicationTimeouts;
+ private final ByteBuffer tokensConf;
+ private final Set<String> applicationTags;
+ private final String appNodeLabel;
+ private final Credentials credentials;
+ private final Resource resource;
+
+ public List<ResourceRequest> getAmResourceRequests() {
+ return amResourceRequests;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getUser() {
+ return user;
+ }
+
+ public Map<ApplicationAccessType, String> getAcls() {
+ return acls;
+ }
+
+ public boolean isUnmanaged() {
+ return unmanaged;
+ }
+
+ public String getQueue() {
+ return queue;
+ }
+
+ public int getMaxAppAttempts() {
+ return maxAppAttempts;
+ }
+
+ public String getAppType() {
+ return appType;
+ }
+
+ public boolean isWaitForAccepted() {
+ return waitForAccepted;
+ }
+
+ public boolean isKeepContainers() {
+ return keepContainers;
+ }
+
+ public boolean isAppIdProvided() {
+ return isAppIdProvided;
+ }
+
+ public ApplicationId getApplicationId() {
+ return applicationId;
+ }
+
+ public long getAttemptFailuresValidityInterval() {
+ return attemptFailuresValidityInterval;
+ }
+
+ public LogAggregationContext getLogAggregationContext() {
+ return logAggregationContext;
+ }
+
+ public boolean isCancelTokensWhenComplete() {
+ return cancelTokensWhenComplete;
+ }
+
+ public Priority getPriority() {
+ return priority;
+ }
+
+ public String getAmLabel() {
+ return amLabel;
+ }
+
+ public Map<ApplicationTimeoutType, Long> getApplicationTimeouts() {
+ return applicationTimeouts;
+ }
+
+ public ByteBuffer getTokensConf() {
+ return tokensConf;
+ }
+
+ public Set<String> getApplicationTags() {
+ return applicationTags;
+ }
+
+ public String getAppNodeLabel() {
+ return appNodeLabel;
+ }
+
+ public Credentials getCredentials() {
+ return credentials;
+ }
+
+ public Resource getResource() {
+ return resource;
+ }
+
+ private MockRMAppSubmissionData(Builder builder) {
+ this.amLabel = builder.amLabel;
+ this.tokensConf = builder.tokensConf;
+ this.maxAppAttempts = builder.maxAppAttempts;
+ this.logAggregationContext = builder.logAggregationContext;
+ this.queue = builder.queue;
+ this.amResourceRequests = builder.amResourceRequests;
+ this.user = builder.user;
+ this.priority = builder.priority;
+ this.waitForAccepted = builder.waitForAccepted;
+ this.keepContainers = builder.keepContainers;
+ this.name = builder.name;
+ this.applicationId = builder.applicationId;
+ this.attemptFailuresValidityInterval =
+ builder.attemptFailuresValidityInterval;
+ this.acls = builder.acls;
+ this.appType = builder.appType;
+ this.appNodeLabel = builder.appNodeLabel;
+ this.isAppIdProvided = builder.isAppIdProvided;
+ this.unmanaged = builder.unmanaged;
+ this.applicationTags = builder.applicationTags;
+ this.cancelTokensWhenComplete = builder.cancelTokensWhenComplete;
+ this.applicationTimeouts = builder.applicationTimeouts;
+ this.credentials = builder.credentials;
+ this.resource = builder.resource;
+ }
+
+ /**
+ * Tests should use this class to prepare all data required to submit an app.
+ */
+ public static final class Builder {
+ private List<ResourceRequest> amResourceRequests;
+ private String name;
+ private String user;
+ private Map<ApplicationAccessType, String> acls;
+ private boolean unmanaged;
+ private String queue;
+ private int maxAppAttempts;
+ private String appType;
+ private boolean waitForAccepted;
+ private boolean keepContainers;
+ private boolean isAppIdProvided;
+ private ApplicationId applicationId;
+ private long attemptFailuresValidityInterval;
+ private LogAggregationContext logAggregationContext;
+ private boolean cancelTokensWhenComplete;
+ private Priority priority;
+ private String amLabel;
+ private Map<ApplicationTimeoutType, Long> applicationTimeouts;
+ private ByteBuffer tokensConf;
+ private Set<String> applicationTags;
+ private String appNodeLabel;
+ private Credentials credentials;
+ private Resource resource;
+
+ private Builder() {
+ }
+
+ public static Builder create() {
+ return new Builder();
+ }
+
+ public static Builder createWithMemory(long memory, MockRM mockRM)
+ throws IOException {
+ Resource resource = Records.newRecord(Resource.class);
+ resource.setMemorySize(memory);
+ return createWithResource(resource, mockRM);
+ }
+
+ public static Builder createWithResource(Resource resource, MockRM mockRM)
+ throws IOException {
+ int maxAppAttempts =
+ mockRM.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
+ YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS);
+ return MockRMAppSubmissionData.Builder.create()
+ .withResource(resource)
+ .withAppName("")
+ .withUser(UserGroupInformation
+ .getCurrentUser().getShortUserName())
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue(null)
+ .withMaxAppAttempts(maxAppAttempts)
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(true)
+ .withKeepContainers(false)
+ .withApplicationId(null)
+ .withAttemptFailuresValidityInterval(0L)
+ .withLogAggregationContext(null)
+ .withCancelTokensWhenComplete(true)
+ .withAppPriority(Priority.newInstance(0))
+ .withAmLabel("")
+ .withApplicationTimeouts(null)
+ .withTokensConf(null);
+ }
+
+ public Builder withAmResourceRequests(
+ List<ResourceRequest> amResourceRequests) {
+ this.amResourceRequests = amResourceRequests;
+ return this;
+ }
+
+ public Builder withAppName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public Builder withUser(String user) {
+ this.user = user;
+ return this;
+ }
+
+ public Builder withAcls(Map<ApplicationAccessType, String> acls) {
+ this.acls = acls;
+ return this;
+ }
+
+ public Builder withUnmanagedAM(boolean unmanaged) {
+ this.unmanaged = unmanaged;
+ return this;
+ }
+
+ public Builder withQueue(String queue) {
+ this.queue = queue;
+ return this;
+ }
+
+ public Builder withMaxAppAttempts(int maxAppAttempts) {
+ this.maxAppAttempts = maxAppAttempts;
+ return this;
+ }
+
+ public Builder withAppType(String appType) {
+ this.appType = appType;
+ return this;
+ }
+
+ public Builder withWaitForAppAcceptedState(boolean waitForAccepted) {
+ this.waitForAccepted = waitForAccepted;
+ return this;
+ }
+
+ public Builder withKeepContainers(boolean keepContainers) {
+ this.keepContainers = keepContainers;
+ return this;
+ }
+
+ public Builder withApplicationId(ApplicationId applicationId) {
+ this.applicationId = applicationId;
+ this.isAppIdProvided = applicationId != null;
+ return this;
+ }
+
+ public Builder withAttemptFailuresValidityInterval(
+ long attemptFailuresValidityInterval) {
+ this.attemptFailuresValidityInterval = attemptFailuresValidityInterval;
+ return this;
+ }
+
+ public Builder withLogAggregationContext(
+ LogAggregationContext logAggregationContext) {
+ this.logAggregationContext = logAggregationContext;
+ return this;
+ }
+
+ public Builder withCancelTokensWhenComplete(
+ boolean cancelTokensWhenComplete) {
+ this.cancelTokensWhenComplete = cancelTokensWhenComplete;
+ return this;
+ }
+
+ public Builder withAppPriority(Priority priority) {
+ this.priority = priority;
+ return this;
+ }
+
+ public Builder withAmLabel(String amLabel) {
+ this.amLabel = amLabel;
+ return this;
+ }
+
+ public Builder withApplicationTimeouts(
+ Map<ApplicationTimeoutType, Long> applicationTimeouts) {
+ this.applicationTimeouts = applicationTimeouts;
+ return this;
+ }
+
+ public Builder withTokensConf(ByteBuffer tokensConf) {
+ this.tokensConf = tokensConf;
+ return this;
+ }
+
+ public Builder withApplicationTags(Set<String> applicationTags) {
+ this.applicationTags = applicationTags;
+ return this;
+ }
+
+ public Builder withAppNodeLabel(String appNodeLabel) {
+ this.appNodeLabel = appNodeLabel;
+ return this;
+ }
+
+ public Builder withCredentials(Credentials cred) {
+ this.credentials = cred;
+ return this;
+ }
+
+ public Builder withResource(Resource resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ public MockRMAppSubmissionData build() {
+ return new MockRMAppSubmissionData(this);
+ }
+ }
+}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRMAppSubmitter.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRMAppSubmitter.java
new file mode 100644
index 0000000..143adb4
--- /dev/null
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRMAppSubmitter.java
@@ -0,0 +1,182 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.yarn.server.resourcemanager;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.security.PrivilegedExceptionAction;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.hadoop.io.DataOutputBuffer;
+import org.apache.hadoop.security.UserGroupInformation;
+import org.apache.hadoop.yarn.api.ApplicationClientProtocol;
+import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationRequest;
+import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationResponse;
+import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
+import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationResponse;
+import org.apache.hadoop.yarn.api.records.ApplicationId;
+import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
+import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
+import org.apache.hadoop.yarn.api.records.Priority;
+import org.apache.hadoop.yarn.api.records.Resource;
+import org.apache.hadoop.yarn.api.records.ResourceRequest;
+import org.apache.hadoop.yarn.exceptions.YarnException;
+import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
+import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppState;
+import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptState;
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler;
+import org.apache.hadoop.yarn.util.Records;
+
+/**
+ * This class can submit an application to {@link MockRM}.
+ */
+public class MockRMAppSubmitter {
+
+ public static RMApp submitWithMemory(long memory, MockRM mockRM)
+ throws Exception {
+ Resource resource = Records.newRecord(Resource.class);
+ resource.setMemorySize(memory);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithResource(resource, mockRM).build();
+ return MockRMAppSubmitter.submit(mockRM, data);
+ }
+
+ public static RMApp submit(MockRM mockRM, MockRMAppSubmissionData data)
+ throws Exception {
+ ApplicationId appId =
+ data.isAppIdProvided() ? data.getApplicationId() : null;
+ ApplicationClientProtocol client = mockRM.getClientRMService();
+ if (!data.isAppIdProvided()) {
+ GetNewApplicationResponse resp = client.getNewApplication(Records
+ .newRecord(GetNewApplicationRequest.class));
+ appId = resp.getApplicationId();
+ }
+ SubmitApplicationRequest req = Records
+ .newRecord(SubmitApplicationRequest.class);
+ ApplicationSubmissionContext sub = Records
+ .newRecord(ApplicationSubmissionContext.class);
+ sub.setKeepContainersAcrossApplicationAttempts(data.isKeepContainers());
+ sub.setApplicationId(appId);
+ sub.setApplicationName(data.getName());
+ sub.setMaxAppAttempts(data.getMaxAppAttempts());
+ if (data.getApplicationTags() != null) {
+ sub.setApplicationTags(data.getApplicationTags());
+ }
+ if (data.getApplicationTimeouts() != null
+ && data.getApplicationTimeouts().size() > 0) {
+ sub.setApplicationTimeouts(data.getApplicationTimeouts());
+ }
+ if (data.isUnmanaged()) {
+ sub.setUnmanagedAM(true);
+ }
+ if (data.getQueue() != null) {
+ sub.setQueue(data.getQueue());
+ }
+ if (data.getPriority() != null) {
+ sub.setPriority(data.getPriority());
+ }
+ if (data.getAppNodeLabel() != null) {
+ sub.setNodeLabelExpression(data.getAppNodeLabel());
+ }
+ sub.setApplicationType(data.getAppType());
+ ContainerLaunchContext clc = Records
+ .newRecord(ContainerLaunchContext.class);
+ clc.setApplicationACLs(data.getAcls());
+ if (data.getCredentials() != null
+ && UserGroupInformation.isSecurityEnabled()) {
+ DataOutputBuffer dob = new DataOutputBuffer();
+ data.getCredentials().writeTokenStorageToStream(dob);
+ ByteBuffer securityTokens =
+ ByteBuffer.wrap(dob.getData(), 0, dob.getLength());
+ clc.setTokens(securityTokens);
+ clc.setTokensConf(data.getTokensConf());
+ }
+ sub.setAMContainerSpec(clc);
+ sub.setAttemptFailuresValidityInterval(
+ data.getAttemptFailuresValidityInterval());
+ if (data.getLogAggregationContext() != null) {
+ sub.setLogAggregationContext(data.getLogAggregationContext());
+ }
+ sub.setCancelTokensWhenComplete(data.isCancelTokensWhenComplete());
+
+ Priority priority = data.getPriority();
+ if (priority == null) {
+ priority = Priority.newInstance(0);
+ }
+
+ List<ResourceRequest> amResourceRequests = data.getAmResourceRequests();
+ if (amResourceRequests == null || amResourceRequests.isEmpty()) {
+ ResourceRequest amResReq = ResourceRequest.newInstance(
+ priority, ResourceRequest.ANY, data.getResource(), 1);
+ amResourceRequests = Collections.singletonList(amResReq);
+ }
+
+ if (data.getAmLabel() != null && !data.getAmLabel().isEmpty()) {
+ for (ResourceRequest amResourceRequest : amResourceRequests) {
+ amResourceRequest.setNodeLabelExpression(data.getAmLabel().trim());
+ }
+ }
+ sub.setAMContainerResourceRequests(amResourceRequests);
+
+ req.setApplicationSubmissionContext(sub);
+ UserGroupInformation fakeUser = UserGroupInformation
+ .createUserForTesting(data.getUser(), new String[] { "someGroup" });
+ PrivilegedExceptionAction<SubmitApplicationResponse> action =
+ new SubmitApplicationResponsePrivilegedExceptionAction()
+ .setClientReq(client, req);
+ fakeUser.doAs(action);
+ // make sure app is immediately available after submit
+ if (data.isWaitForAccepted()) {
+ mockRM.waitForState(appId, RMAppState.ACCEPTED);
+ }
+ RMApp rmApp = mockRM.getRMContext().getRMApps().get(appId);
+
+ // unmanaged AM won't go to RMAppAttemptState.SCHEDULED.
+ if (data.isWaitForAccepted() && !data.isUnmanaged()) {
+ mockRM.waitForState(rmApp.getCurrentAppAttempt().getAppAttemptId(),
+ RMAppAttemptState.SCHEDULED);
+ }
+
+ ((AbstractYarnScheduler)mockRM.getResourceScheduler()).update();
+
+ return rmApp;
+ }
+
+ private static class SubmitApplicationResponsePrivilegedExceptionAction
+ implements PrivilegedExceptionAction<SubmitApplicationResponse> {
+ ApplicationClientProtocol client;
+ SubmitApplicationRequest req;
+
+ @Override
+ public SubmitApplicationResponse run() throws IOException, YarnException {
+ try {
+ return client.submitApplication(req);
+ } catch (YarnException | IOException e) {
+ e.printStackTrace();
+ throw e;
+ }
+ }
+
+ PrivilegedExceptionAction<SubmitApplicationResponse> setClientReq(
+ ApplicationClientProtocol client, SubmitApplicationRequest req) {
+ this.client = client;
+ this.req = req;
+ return this;
+ }
+ }
+}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestAMAuthorization.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestAMAuthorization.java
index fcd4ed1..79b0cab 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestAMAuthorization.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestAMAuthorization.java
@@ -270,7 +270,13 @@ public class TestAMAuthorization {
Map<ApplicationAccessType, String> acls =
new HashMap<ApplicationAccessType, String>(2);
acls.put(ApplicationAccessType.VIEW_APP, "*");
- RMApp app = rm.submitApp(1024, "appname", "appuser", acls);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppName("appname")
+ .withUser("appuser")
+ .withAcls(acls)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
nm1.nodeHeartbeat(true);
@@ -328,7 +334,7 @@ public class TestAMAuthorization {
MockNM nm1 = rm.registerNode("localhost:1234", 5120);
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
nm1.nodeHeartbeat(true);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationCleanup.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationCleanup.java
index 373fa90..807000a 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationCleanup.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationCleanup.java
@@ -81,7 +81,7 @@ public class TestApplicationCleanup {
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 5000);
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
//kick the scheduling
nm1.nodeHeartbeat(true);
@@ -159,7 +159,7 @@ public class TestApplicationCleanup {
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 5000);
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
//kick the scheduling
nm1.nodeHeartbeat(true);
@@ -296,7 +296,7 @@ public class TestApplicationCleanup {
nm1.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = launchAM(app0, rm1, nm1);
nm1.nodeHeartbeat(am0.getApplicationAttemptId(), 1, ContainerState.COMPLETE);
rm1.waitForState(app0.getApplicationId(), RMAppState.FAILED);
@@ -333,7 +333,7 @@ public class TestApplicationCleanup {
nm2.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = launchAM(app0, rm1, nm1);
// alloc another container on nm2
@@ -387,7 +387,7 @@ public class TestApplicationCleanup {
nm1.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = launchAM(app0, rm1, nm1);
nm1.nodeHeartbeat(am0.getApplicationAttemptId(), 1, ContainerState.RUNNING);
rm1.waitForState(app0.getApplicationId(), RMAppState.RUNNING);
@@ -423,7 +423,7 @@ public class TestApplicationCleanup {
nm1.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = launchAM(app0, rm1, nm1);
nm1.nodeHeartbeat(am0.getApplicationAttemptId(), 1, ContainerState.COMPLETE);
rm1.waitForState(app0.getApplicationId(), RMAppState.FAILED);
@@ -463,7 +463,7 @@ public class TestApplicationCleanup {
new MockNM("127.0.0.1:1234", nmMemory, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app0 = rm1.submitApp(amMemory);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(amMemory, rm1);
MockAM am0 = MockRM.launchAndRegisterAM(app0, rm1, nm1);
// 2. AM sends ResourceRequest for 1 container with memory 2048MB.
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterLauncher.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterLauncher.java
index 55b4935..3cf809d 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterLauncher.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterLauncher.java
@@ -230,7 +230,7 @@ public class TestApplicationMasterLauncher {
rm.start();
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 5120);
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
// kick the scheduling
nm1.nodeHeartbeat(true);
@@ -289,7 +289,7 @@ public class TestApplicationMasterLauncher {
MockRM rm = new MockRM();
rm.start();
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 5120);
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
// kick the scheduling
nm1.nodeHeartbeat(true);
RMAppAttempt attempt = app.getCurrentAppAttempt();
@@ -365,7 +365,7 @@ public class TestApplicationMasterLauncher {
rm.start();
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 5120);
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
// kick the scheduling
nm1.nodeHeartbeat(true);
@@ -385,7 +385,7 @@ public class TestApplicationMasterLauncher {
MockRM rm = new MockRM();
rm.start();
MockNM nm1 = rm.registerNode("h1:1234", 5000);
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
// kick the scheduling
nm1.nodeHeartbeat(true);
RMAppAttempt attempt = app.getCurrentAppAttempt();
@@ -458,7 +458,7 @@ public class TestApplicationMasterLauncher {
MockRM rm = new MockRM(conf);
rm.start();
MockNM nm1 = rm.registerNode("h1:1234", 5000);
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
/// kick the scheduling
nm1.nodeHeartbeat(true);
RMAppAttempt attempt = app.getCurrentAppAttempt();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterServiceCapacity.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterServiceCapacity.java
index 8d04e50..182016a 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterServiceCapacity.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterServiceCapacity.java
@@ -105,7 +105,7 @@ public class TestApplicationMasterServiceCapacity extends
MockNM nm1 = rm.registerNode(DEFAULT_HOST + ":" + DEFAULT_PORT, 6 * GB);
// Submit an application
- RMApp app1 = rm.submitApp(1024);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(1024, rm);
// kick the scheduling
nm1.nodeHeartbeat(true);
@@ -177,7 +177,11 @@ public class TestApplicationMasterServiceCapacity extends
// Submit an application
Priority appPriority1 = Priority.newInstance(5);
- RMApp app1 = rm.submitApp(2048, appPriority1);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithMemory(2048, rm)
+ .withAppPriority(appPriority1)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
nm1.nodeHeartbeat(true);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterServiceFair.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterServiceFair.java
index 3ff3bcd..5f6f980 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterServiceFair.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterServiceFair.java
@@ -97,7 +97,15 @@ public class TestApplicationMasterServiceFair extends
ImmutableMap.<String, String> builder()
.put(CUSTOM_RES, "5G").build()));
- RMApp app1 = rm.submitApp(GB, "app", "user", null, DEFAULT_QUEUE);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue(DEFAULT_QUEUE)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
// Now request res_1, 500M < 5G so it should be allowed
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterServiceInterceptor.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterServiceInterceptor.java
index 7da4d97..e1d6def 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterServiceInterceptor.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationMasterServiceInterceptor.java
@@ -171,7 +171,7 @@ public class TestApplicationMasterServiceInterceptor {
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 6 * GB);
// Submit an application
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
// kick the scheduling
nm1.nodeHeartbeat(true);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestCapacitySchedulerMetrics.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestCapacitySchedulerMetrics.java
index 572619f..62690e9 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestCapacitySchedulerMetrics.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestCapacitySchedulerMetrics.java
@@ -78,8 +78,18 @@ public class TestCapacitySchedulerMetrics {
Assert.assertEquals(0, csMetrics.getNumOfAllocates());
Assert.assertEquals(0, csMetrics.getNumOfCommitSuccess());
- RMApp rmApp = rm.submitApp(1024, "app", "user", null, false,
- "default", 1, null, null, false);
+ RMApp rmApp = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(1)
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(false)
+ .build());
MockAM am = MockRM.launchAMWhenAsyncSchedulingEnabled(rmApp, rm);
am.registerAppAttempt();
am.allocate("*", 1024, 1, new ArrayList<>());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java
index d422233..82695ed 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java
@@ -605,8 +605,12 @@ public class TestClientRMService {
GetApplicationsRequest getRequest = GetApplicationsRequest.newInstance(
EnumSet.of(YarnApplicationState.KILLED));
- RMApp app1 = rm.submitApp(1024);
- RMApp app2 = rm.submitApp(1024, true);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(1024, rm);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withUnmanagedAM(true)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
assertEquals("Incorrect number of apps in the RM", 0,
rmService.getApplications(getRequest).getApplicationList().size());
@@ -2437,7 +2441,11 @@ public class TestClientRMService {
MockRM rm = new MockRM(conf);
rm.init(conf);
rm.start();
- RMApp app1 = rm.submitApp(1024, Priority.newInstance(appPriority));
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithMemory(1024, rm)
+ .withAppPriority(Priority.newInstance(appPriority))
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
ClientRMService rmService = rm.getClientRMService();
testApplicationPriorityUpdation(rmService, app1, appPriority, appPriority);
rm.killApp(app1.getApplicationId());
@@ -2460,7 +2468,11 @@ public class TestClientRMService {
rm.start();
rm.registerNode("host1:1234", 1024);
// Start app1 with appPriority 5
- RMApp app1 = rm.submitApp(1024, Priority.newInstance(appPriority));
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithMemory(1024, rm)
+ .withAppPriority(Priority.newInstance(appPriority))
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
Assert.assertEquals("Incorrect priority has been set to application",
appPriority, app1.getApplicationPriority().getPriority());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestContainerResourceUsage.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestContainerResourceUsage.java
index a9093f9..0c7d233 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestContainerResourceUsage.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestContainerResourceUsage.java
@@ -78,7 +78,7 @@ public class TestContainerResourceUsage {
new MockNM("127.0.0.1:1234", 15120, rm.getResourceTrackerService());
nm.registerNode();
- RMApp app0 = rm.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm);
RMAppMetrics rmAppMetrics = app0.getRMAppMetrics();
Assert.assertTrue(
@@ -147,7 +147,7 @@ public class TestContainerResourceUsage {
new MockNM("127.0.0.1:1234", 65536, rm0.getResourceTrackerService());
nm.registerNode();
- RMApp app0 = rm0.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm0);
rm0.waitForState(app0.getApplicationId(), RMAppState.ACCEPTED);
RMAppAttempt attempt0 = app0.getCurrentAppAttempt();
@@ -262,10 +262,21 @@ public class TestContainerResourceUsage {
MockRM rm = new MockRM(conf);
rm.start();
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("MAPREDUCE")
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(keepRunningContainers)
+ .build();
RMApp app =
- rm.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", -1,
- null, "MAPREDUCE", false, keepRunningContainers);
+ MockRMAppSubmitter.submit(rm, data);
MockNM nm =
new MockNM("127.0.0.1:1234", 10240, rm.getResourceTrackerService());
nm.registerNode();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestDecommissioningNodesWatcher.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestDecommissioningNodesWatcher.java
index 0695689..c662b55 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestDecommissioningNodesWatcher.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestDecommissioningNodesWatcher.java
@@ -65,7 +65,7 @@ public class TestDecommissioningNodesWatcher {
rm.waitForState(id1, NodeState.RUNNING);
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
MockAM am = MockRM.launchAndRegisterAM(app, rm, nm1);
NodeStatus nodeStatus = createNodeStatus(id1, app, 3);
@@ -125,7 +125,8 @@ public class TestDecommissioningNodesWatcher {
rm.waitForState(id1, NodeState.RUNNING);
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(2000, rm).build());
MockAM am = MockRM.launchAndRegisterAM(app, rm, nm1);
NodeStatus nodeStatus = createNodeStatus(id1, app, 3);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestKillApplicationWithRMHA.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestKillApplicationWithRMHA.java
index 979d8c7..e0f9bf5 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestKillApplicationWithRMHA.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestKillApplicationWithRMHA.java
@@ -22,6 +22,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
import java.io.IOException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.conf.Configuration;
@@ -62,12 +63,24 @@ public class TestKillApplicationWithRMHA extends RMHATestBase{
nm1.registerNode();
// Submit the application
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("")
+ .withUser(UserGroupInformation
+ .getCurrentUser().getShortUserName())
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue(null)
+ .withMaxAppAttempts(configuration.getInt(
+ YarnConfiguration.RM_AM_MAX_ATTEMPTS,
+ YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS))
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(false)
+ .build();
RMApp app0 =
- rm1.submitApp(200, "", UserGroupInformation
- .getCurrentUser().getShortUserName(), null, false, null,
- configuration.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null,
- false, false);
+ MockRMAppSubmitter.submit(rm1, data);
// failover and kill application
// When FailOver happens, the state of this application is NEW,
@@ -93,7 +106,7 @@ public class TestKillApplicationWithRMHA extends RMHATestBase{
nm1.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = launchAM(app0, rm1, nm1);
// failover and kill application
@@ -116,7 +129,7 @@ public class TestKillApplicationWithRMHA extends RMHATestBase{
nm1.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = launchAM(app0, rm1, nm1);
// kill the app.
@@ -147,7 +160,7 @@ public class TestKillApplicationWithRMHA extends RMHATestBase{
nm1.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = launchAM(app0, rm1, nm1);
// ensure that the app is in running state
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestLeaderElectorService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestLeaderElectorService.java
index 4cd1df6..1a81b64 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestLeaderElectorService.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestLeaderElectorService.java
@@ -126,7 +126,14 @@ public class TestLeaderElectorService {
rm2 = startRM("rm2", HAServiceState.STANDBY);
// submit an app which will trigger state-store failure.
- rm1.submitApp(200, "app1", "user1", null, "default", false);
+ MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("app1")
+ .withUser("user1")
+ .withAcls(null)
+ .withQueue("default")
+ .withWaitForAppAcceptedState(false)
+ .build());
waitFor(rm1, HAServiceState.STANDBY);
// rm2 should become active;
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestMoveApplication.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestMoveApplication.java
index 05b25df..a078fb2 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestMoveApplication.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestMoveApplication.java
@@ -124,7 +124,7 @@ public class TestMoveApplication {
void testMoveSuccessful() throws Exception {
MockRM rm1 = new MockRM(conf);
rm1.start();
- RMApp app = rm1.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm1);
ClientRMService clientRMService = rm1.getClientRMService();
// FIFO scheduler does not support moves
clientRMService
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestNodeBlacklistingOnAMFailures.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestNodeBlacklistingOnAMFailures.java
index e7d666a..8e35faf 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestNodeBlacklistingOnAMFailures.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestNodeBlacklistingOnAMFailures.java
@@ -58,6 +58,35 @@ import org.junit.Test;
*/
public class TestNodeBlacklistingOnAMFailures {
+ private RMApp submitAppWithAMResourceRequests(MockRM rm,
+ List<ResourceRequest> amResourceRequests) throws Exception {
+ int maxAttempts =
+ rm.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
+ YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder.create()
+ .withAmResourceRequests(amResourceRequests)
+ .withAppName("app1")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue(null)
+ .withMaxAppAttempts(maxAttempts)
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(true)
+ .withKeepContainers(false)
+ .withApplicationId(null)
+ .withAttemptFailuresValidityInterval(0)
+ .withLogAggregationContext(null)
+ .withCancelTokensWhenComplete(true)
+ .withAppPriority(amResourceRequests.get(0).getPriority())
+ .withAmLabel(amResourceRequests.get(0).getNodeLabelExpression())
+ .withApplicationTimeouts(null)
+ .withTokensConf(null)
+ .build();
+ return MockRMAppSubmitter.submit(rm, data);
+ }
+
@Before
public void setup() {
QueueMetrics.clearQueueMetrics();
@@ -87,7 +116,7 @@ public class TestNodeBlacklistingOnAMFailures {
new MockNM("127.0.0.2:2345", 8000, rm.getResourceTrackerService());
nm2.registerNode();
- RMApp app = rm.submitApp(200);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(200, rm);
MockAM am1 = MockRM.launchAndRegisterAM(app, rm, nm1);
ContainerId amContainerId =
@@ -215,7 +244,7 @@ public class TestNodeBlacklistingOnAMFailures {
reqs.add(anyReq);
reqs.add(rackReq);
reqs.add(nodeReq);
- RMApp app = rm.submitApp(reqs);
+ RMApp app = submitAppWithAMResourceRequests(rm, reqs);
MockAM am1 = MockRM.launchAndRegisterAM(app, rm, nm2);
ContainerId amContainerId =
@@ -302,7 +331,7 @@ public class TestNodeBlacklistingOnAMFailures {
reqs.add(anyReq);
reqs.add(rackReq);
reqs.add(nodeReq);
- RMApp app = rm.submitApp(reqs);
+ RMApp app = submitAppWithAMResourceRequests(rm, reqs);
MockAM am1 = MockRM.launchAndRegisterAM(app, rm, nm2);
ContainerId amContainerId =
@@ -363,7 +392,7 @@ public class TestNodeBlacklistingOnAMFailures {
new MockNM("127.0.0.1:1234", 8000, rm.getResourceTrackerService());
node.registerNode();
- RMApp app = rm.submitApp(200);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(200, rm);
ApplicationId appId = app.getApplicationId();
int numAppAttempts = 1;
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestOpportunisticContainerAllocatorAMService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestOpportunisticContainerAllocatorAMService.java
index 7078244..5c5cb25 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestOpportunisticContainerAllocatorAMService.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestOpportunisticContainerAllocatorAMService.java
@@ -191,8 +191,15 @@ public class TestOpportunisticContainerAllocatorAMService {
OpportunisticContainerAllocatorAMService amservice =
(OpportunisticContainerAllocatorAMService) rm
.getApplicationMasterService();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
-
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2);
ResourceScheduler scheduler = rm.getResourceScheduler();
@@ -343,8 +350,15 @@ public class TestOpportunisticContainerAllocatorAMService {
OpportunisticContainerAllocatorAMService amservice =
(OpportunisticContainerAllocatorAMService) rm
.getApplicationMasterService();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
-
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2);
ResourceScheduler scheduler = rm.getResourceScheduler();
@@ -453,8 +467,15 @@ public class TestOpportunisticContainerAllocatorAMService {
OpportunisticContainerAllocatorAMService amservice =
(OpportunisticContainerAllocatorAMService) rm
.getApplicationMasterService();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
-
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2);
ResourceScheduler scheduler = rm.getResourceScheduler();
@@ -550,7 +571,15 @@ public class TestOpportunisticContainerAllocatorAMService {
OpportunisticContainerAllocatorAMService amservice =
(OpportunisticContainerAllocatorAMService) rm
.getApplicationMasterService();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
ResourceScheduler scheduler = rm.getResourceScheduler();
RMNode rmNode1 = rm.getRMContext().getRMNodes().get(nm1.getNodeId());
@@ -717,7 +746,13 @@ public class TestOpportunisticContainerAllocatorAMService {
OpportunisticContainerAllocatorAMService amservice =
(OpportunisticContainerAllocatorAMService) rm
.getApplicationMasterService();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ RMApp app1 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .build());
ApplicationAttemptId attemptId =
app1.getCurrentAppAttempt().getAppAttemptId();
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2);
@@ -787,7 +822,13 @@ public class TestOpportunisticContainerAllocatorAMService {
MockNM nm = new MockNM("h:1234", 4096, rm.getResourceTrackerService());
nm.registerNode();
- RMApp app = rm.submitApp(1 * GB, "app", "user", null, "default");
+ RMApp app = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .build());
ApplicationAttemptId attemptId0 =
app.getCurrentAppAttempt().getAppAttemptId();
MockAM am = MockRM.launchAndRegisterAM(app, rm, nm);
@@ -824,7 +865,15 @@ public class TestOpportunisticContainerAllocatorAMService {
OpportunisticContainerAllocatorAMService amservice =
(OpportunisticContainerAllocatorAMService) rm
.getApplicationMasterService();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
ApplicationAttemptId attemptId =
app1.getCurrentAppAttempt().getAppAttemptId();
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2);
@@ -877,7 +926,13 @@ public class TestOpportunisticContainerAllocatorAMService {
nm.registerNode();
nm.nodeHeartbeat(oppContainersStatus, true);
- RMApp app = rm.submitApp(1 * GB, "app", "user", null, "default");
+ RMApp app = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .build());
ApplicationAttemptId attemptId =
app.getCurrentAppAttempt().getAppAttemptId();
MockAM am = MockRM.launchAndRegisterAM(app, rm, nm);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRM.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRM.java
index 49144a3..2078d32 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRM.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRM.java
@@ -123,8 +123,8 @@ public class TestRM extends ParameterizedSchedulerTestBase {
MockRM rm = new MockRM(conf);
rm.start();
MockNM nm1 = rm.registerNode("h1:1234", 5120);
-
- RMApp app = rm.submitApp(2000);
+
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
//kick the scheduling
nm1.nodeHeartbeat(true);
@@ -146,8 +146,8 @@ public class TestRM extends ParameterizedSchedulerTestBase {
rm.start();
MockNM nm1 = rm.registerNode("h1:1234", 5120);
MockNM nm2 = rm.registerNode("h2:5678", 10240);
-
- RMApp app = rm.submitApp(2000);
+
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
//kick the scheduling
nm1.nodeHeartbeat(true);
@@ -203,7 +203,7 @@ public class TestRM extends ParameterizedSchedulerTestBase {
MockRM rm = new MockRM(conf);
rm.start();
MockNM nm1 = rm.registerNode("h1:1234", 5120);
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
RMAppAttempt attempt = app.getCurrentAppAttempt();
// Call getNewContainerId to increase container Id so that the AM container
@@ -259,7 +259,7 @@ public class TestRM extends ParameterizedSchedulerTestBase {
rm.getRMContext().getNMTokenSecretManager();
// submitting new application
- RMApp app = rm.submitApp(1000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1000, rm);
// start scheduling.
nm1.nodeHeartbeat(true);
@@ -440,10 +440,10 @@ public class TestRM extends ParameterizedSchedulerTestBase {
rm1.start();
// app that gets launched
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
// app that does not get launched
- RMApp app2 = rm1.submitApp(200);
+ RMApp app2 = MockRMAppSubmitter.submitWithMemory(200, rm1);
// app1 and app2 should be scheduled, but because no resource is available,
// they are not activated.
@@ -484,7 +484,7 @@ public class TestRM extends ParameterizedSchedulerTestBase {
rm1.start();
// a succeeded app
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockNM nm1 =
new MockNM("127.0.0.1:1234", 15120, rm1.getResourceTrackerService());
nm1.registerNode();
@@ -492,14 +492,14 @@ public class TestRM extends ParameterizedSchedulerTestBase {
MockRM.finishAMAndVerifyAppState(app1, rm1, nm1, am1);
// a failed app
- RMApp app2 = rm1.submitApp(200);
+ RMApp app2 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
nm1.nodeHeartbeat(am2.getApplicationAttemptId(), 1, ContainerState.COMPLETE);
rm1.waitForState(am2.getApplicationAttemptId(), RMAppAttemptState.FAILED);
rm1.waitForState(app2.getApplicationId(), RMAppState.FAILED);
// a killed app
- RMApp app3 = rm1.submitApp(200);
+ RMApp app3 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, nm1);
rm1.killApp(app3.getApplicationId());
rm1.waitForState(app3.getApplicationId(), RMAppState.KILLED);
@@ -538,7 +538,7 @@ public class TestRM extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// a failed app
- RMApp app2 = rm1.submitApp(200);
+ RMApp app2 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
nm1
.nodeHeartbeat(am2.getApplicationAttemptId(), 1, ContainerState.COMPLETE);
@@ -605,7 +605,7 @@ public class TestRM extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// a failed app
- RMApp application = rm.submitApp(200);
+ RMApp application = MockRMAppSubmitter.submitWithMemory(200, rm);
MockAM am = MockRM.launchAM(application, rm, nm1);
rm.waitForState(am.getApplicationAttemptId(), RMAppAttemptState.LAUNCHED);
nm1.nodeHeartbeat(am.getApplicationAttemptId(), 1, ContainerState.RUNNING);
@@ -683,7 +683,7 @@ public class TestRM extends ParameterizedSchedulerTestBase {
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8192, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
rm1.killApp(app1.getApplicationId());
@@ -737,7 +737,7 @@ public class TestRM extends ParameterizedSchedulerTestBase {
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8192, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
rm1.killApp(app1.getApplicationId());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHA.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHA.java
index 4b11296..b44a8ae 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHA.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHA.java
@@ -142,7 +142,7 @@ public class TestRMHA {
try {
rm.getNewAppId();
nm = rm.registerNode("127.0.0.1:1", 2048);
- app = rm.submitApp(1024);
+ app = MockRMAppSubmitter.submitWithMemory(1024, rm);
attempt = app.getCurrentAppAttempt();
rm.waitForState(attempt.getAppAttemptId(), RMAppAttemptState.SCHEDULED);
} catch (Exception e) {
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHAForAsyncScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHAForAsyncScheduler.java
index 36f1762..a609d84 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHAForAsyncScheduler.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHAForAsyncScheduler.java
@@ -136,11 +136,22 @@ public class TestRMHAForAsyncScheduler extends RMHATestBase {
}
private RMApp submitAppAndCheckLaunched(MockRM rm) throws Exception {
- RMApp app = rm.submitApp(200, "",
- UserGroupInformation.getCurrentUser().getShortUserName(), null, false,
- "default", configuration.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null, false,
- false);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm)
+ .withAppName("")
+ .withUser(UserGroupInformation.getCurrentUser().getShortUserName())
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(
+ configuration.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
+ YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS))
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
rm.waitForState(app.getApplicationId(), RMAppState.ACCEPTED);
RMAppAttempt attempt = app.getCurrentAppAttempt();
rm.sendAMLaunched(attempt.getAppAttemptId());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHATimelineCollectors.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHATimelineCollectors.java
index a0cd048..d4f156b 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHATimelineCollectors.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMHATimelineCollectors.java
@@ -60,14 +60,14 @@ public class TestRMHATimelineCollectors extends RMHATestBase {
= new MockNM("127.0.0.1:1234", 15120, rm2.getResourceTrackerService());
MockNM nm2
= new MockNM("127.0.0.1:5678", 15121, rm2.getResourceTrackerService());
- RMApp app1 = rm1.submitApp(1024);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(1024, rm1);
String collectorAddr1 = "1.2.3.4:5";
AppCollectorData data1 = AppCollectorData.newInstance(
app1.getApplicationId(), collectorAddr1);
nm1.addRegisteringCollector(app1.getApplicationId(), data1);
String collectorAddr2 = "5.4.3.2:1";
- RMApp app2 = rm1.submitApp(1024);
+ RMApp app2 = MockRMAppSubmitter.submitWithMemory(1024, rm1);
AppCollectorData data2 = AppCollectorData.newInstance(
app2.getApplicationId(), collectorAddr2, rm1.getStartTime(), 1);
nm1.addRegisteringCollector(app2.getApplicationId(), data2);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMRestart.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMRestart.java
index 6127214..3b6d068 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMRestart.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMRestart.java
@@ -194,6 +194,37 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
return rm;
}
+ private RMApp submitApp(MockRM rm, List<ResourceRequest> amResourceRequests,
+ String appNodeLabel) throws Exception {
+ int maxAttempts =
+ rm.getConfig().getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
+ YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder.create()
+ .withAmResourceRequests(amResourceRequests)
+ .withAppName("app1")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue(null)
+ .withMaxAppAttempts(maxAttempts)
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(true)
+ .withKeepContainers(false)
+ .withApplicationId(null)
+ .withAttemptFailuresValidityInterval(0)
+ .withLogAggregationContext(null)
+ .withCancelTokensWhenComplete(true)
+ .withAppPriority(amResourceRequests.get(0).getPriority())
+ .withAmLabel(amResourceRequests.get(0).getNodeLabelExpression())
+ .withApplicationTimeouts(null)
+ .withTokensConf(null)
+ .withApplicationTags(null)
+ .withAppNodeLabel(appNodeLabel)
+ .build();
+ return MockRMAppSubmitter.submit(rm, data);
+ }
+
@Test (timeout=180000)
public void testRMRestart() throws Exception {
conf.setInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
@@ -217,7 +248,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm2.registerNode(); // nm2 will not heartbeat with RM1
// create app that will finish and the final state should be saved.
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
RMAppAttempt attempt0 = app0.getCurrentAppAttempt();
// spot check that app is saved
Assert.assertEquals(1, rmAppState.size());
@@ -227,7 +258,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
finishApplicationMaster(app0, rm1, nm1, am0);
// create app that gets launched and does allocate before RM restart
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
// assert app1 info is saved
ApplicationStateData appState = rmAppState.get(app1.getApplicationId());
Assert.assertNotNull(appState);
@@ -268,7 +299,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
}
// create app that does not get launched by RM before RM restart
- RMApp app2 = rm1.submitApp(200);
+ RMApp app2 = MockRMAppSubmitter.submitWithMemory(200, rm1);
// assert app2 info is saved
appState = rmAppState.get(app2.getApplicationId());
@@ -279,9 +310,18 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
.getApplicationId());
// create unmanaged app
- RMApp appUnmanaged = rm1.submitApp(200, "someApp", "someUser", null, true,
- null, conf.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null);
+ RMApp appUnmanaged = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("someApp")
+ .withUser("someUser")
+ .withAcls(null)
+ .withUnmanagedAM(true)
+ .withQueue(null)
+ .withMaxAppAttempts(
+ conf.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
+ YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS))
+ .withCredentials(null)
+ .build());
ApplicationAttemptId unmanagedAttemptId =
appUnmanaged.getCurrentAppAttempt().getAppAttemptId();
// assert appUnmanaged info is saved
@@ -483,7 +523,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
Resource.newInstance(200, 1), 1, true, amLabel.getName());
ArrayList resReqs = new ArrayList<>();
resReqs.add(amResourceRequest);
- RMApp app0 = rm1.submitApp(resReqs, appLabel.getName());
+ RMApp app0 = submitApp(rm1, resReqs, appLabel.getName());
rm1.killApp(app0.getApplicationId());
rm1.waitForState(app0.getApplicationId(), RMAppState.KILLED);
// start new RM
@@ -509,7 +549,14 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
rm1.start();
// create app and launch the AM
RMApp app0 =
- rm1.submitApp(null, "name", "user", new HashMap<>(), true, "default");
+ MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithResource(null, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<>())
+ .withUnmanagedAM(true)
+ .withQueue("default")
+ .build());
rm1.killApp(app0.getApplicationId());
rm1.waitForState(app0.getApplicationId(), RMAppState.KILLED);
// start new RM
@@ -540,10 +587,21 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// create app and launch the AM
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("MAPREDUCE")
+ .withWaitForAppAcceptedState(true)
+ .withKeepContainers(true)
+ .build();
RMApp app0 =
- rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", -1,
- null, "MAPREDUCE", true, true);
+ MockRMAppSubmitter.submit(rm1, data);
MockAM am0 = launchAM(app0, rm1, nm1);
// fail the AM by sending CONTAINER_FINISHED event without registering.
@@ -598,7 +656,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// submitting app
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
rm1.waitForState(app1.getApplicationId(), RMAppState.ACCEPTED);
MockAM am1 = launchAM(app1, rm1, nm1);
nm1.nodeHeartbeat(am1.getApplicationAttemptId(), 1, ContainerState.COMPLETE);
@@ -706,7 +764,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
// It will be saved only when we launch AM.
// submitting app but not starting AM for it.
- RMApp app2 = rm3.submitApp(200);
+ RMApp app2 = MockRMAppSubmitter.submitWithMemory(200, rm3);
rm3.waitForState(app2.getApplicationId(), RMAppState.ACCEPTED);
Assert.assertEquals(1, app2.getAppAttempts().size());
Assert.assertEquals(0,
@@ -773,7 +831,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
MockRM rm1 = createMockRM(conf, memStore);
rm1.start();
MockNM nm1 = rm1.registerNode("127.0.0.1:1234", 15120);
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = MockRM.launchAndRegisterAM(app0, rm1, nm1);
FinishApplicationMasterRequest req =
FinishApplicationMasterRequest.newInstance(
@@ -814,7 +872,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = launchAM(app0, rm1, nm1);
// fail the AM by sending CONTAINER_FINISHED event without registering.
@@ -862,7 +920,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = launchAM(app0, rm1, nm1);
// kill the app.
@@ -918,9 +976,18 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
rm1.start();
// create app
RMApp app0 =
- rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", -1,
- null, "MAPREDUCE", false);
+ MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("MAPREDUCE")
+ .withWaitForAppAcceptedState(false)
+ .build());
// kill the app.
rm1.killApp(app0.getApplicationId());
rm1.waitForState(app0.getApplicationId(), RMAppState.KILLED);
@@ -952,7 +1019,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// create an app and finish the app.
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = launchAM(app0, rm1, nm1);
// unregister am
@@ -1003,14 +1070,32 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
(MockMemoryRMStateStore) rm1.getRMStateStore();
// a succeeded app.
- RMApp app0 = rm1.submitApp(200, "name", "user", null,
- false, "default", 1, null, "myType");
+ RMApp app0 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(1)
+ .withCredentials(null)
+ .withAppType("myType")
+ .build());
MockAM am0 = launchAM(app0, rm1, nm1);
finishApplicationMaster(app0, rm1, nm1, am0);
// a failed app.
- RMApp app1 = rm1.submitApp(200, "name", "user", null,
- false, "default", 1, null, "myType");
+ RMApp app1 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(1)
+ .withCredentials(null)
+ .withAppType("myType")
+ .build());
MockAM am1 = launchAM(app1, rm1, nm1);
// fail the AM by sending CONTAINER_FINISHED event without registering.
nm1.nodeHeartbeat(am1.getApplicationAttemptId(), 1, ContainerState.COMPLETE);
@@ -1018,8 +1103,17 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
rm1.waitForState(app1.getApplicationId(), RMAppState.FAILED);
// a killed app.
- RMApp app2 = rm1.submitApp(200, "name", "user", null,
- false, "default", 1, null, "myType");
+ RMApp app2 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(1)
+ .withCredentials(null)
+ .withAppType("myType")
+ .build());
MockAM am2 = launchAM(app2, rm1, nm1);
rm1.killApp(app2.getApplicationId());
rm1.waitForState(app2.getApplicationId(), RMAppState.KILLED);
@@ -1162,13 +1256,27 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// submit an app with maxAppAttempts equals to 1
- RMApp app1 = rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", 1,
- null);
+ RMApp app1 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(1)
+ .withCredentials(null)
+ .build());
// submit an app with maxAppAttempts equals to -1
- RMApp app2 = rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", -1,
- null);
+ RMApp app2 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .build());
// assert app1 info is saved
ApplicationStateData appState = rmAppState.get(app1.getApplicationId());
@@ -1232,9 +1340,16 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// submit an app.
- RMApp app = rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", -1,
- null);
+ RMApp app = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .build());
// Check if app info has been saved.
ApplicationStateData appState = rmAppState.get(app.getApplicationId());
Assert.assertNotNull(appState);
@@ -1321,8 +1436,16 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
tokenSet.add(token2);
// submit an app with customized credential
- RMApp app = rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", 1, ts);
+ RMApp app = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(1)
+ .withCredentials(ts)
+ .build());
// assert app info is saved
ApplicationStateData appState = rmAppState.get(app.getApplicationId());
@@ -1389,9 +1512,16 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// submit an app
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
RMApp app1 =
- rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), "default");
+ MockRMAppSubmitter.submit(rm1, data);
// assert app info is saved
ApplicationStateData appState = rmAppState.get(app1.getApplicationId());
@@ -1492,8 +1622,16 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
tokenIdentSet.add(dtId1);
// submit an app with customized credential
- RMApp app = rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", 1, ts);
+ RMApp app = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(1)
+ .withCredentials(ts)
+ .build());
// assert app info is saved
ApplicationStateData appState = rmAppState.get(app.getApplicationId());
@@ -1624,8 +1762,16 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
// submit an app with the old delegation token got from previous RM.
Credentials ts = new Credentials();
ts.addToken(token1.getService(), token1);
- RMApp app = rm2.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", 1, ts);
+ RMApp app = MockRMAppSubmitter.submit(rm2,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm2)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(1)
+ .withCredentials(ts)
+ .build());
rm2.waitForState(app.getApplicationId(), RMAppState.ACCEPTED);
}
@@ -1665,9 +1811,18 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
final int NUM_APPS = 5;
for (int i = 0; i < NUM_APPS; i++) {
- RMApp app = rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false,
- "default", -1, null, "MAPREDUCE", false);
+ RMApp app = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("MAPREDUCE")
+ .withWaitForAppAcceptedState(false)
+ .build());
appList.add(app);
rm1.waitForState(app.getApplicationId(), RMAppState.NEW_SAVING);
}
@@ -1710,7 +1865,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// create an app and finish the app.
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = launchAM(app0, rm1, nm1);
finishApplicationMaster(app0, rm1, nm1, am0);
@@ -1728,7 +1883,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
rm2.waitForState(app0.getApplicationId(), RMAppState.FINISHED);
// create one more app and finish the app.
- RMApp app1 = rm2.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm2);
MockAM am1 = launchAM(app1, rm2, nm1);
finishApplicationMaster(app1, rm2, nm1, am1);
rm2.drainEvents();
@@ -1778,8 +1933,17 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
RMApp app1 =
- rm1.submitApp(200, "name", "user", null, false, "default", 1, null,
- "myType");
+ MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(1)
+ .withCredentials(null)
+ .withAppType("myType")
+ .build());
MockAM am1 = launchAM(app1, rm1, nm1);
KillApplicationResponse response;
@@ -1828,9 +1992,18 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
(MockMemoryRMStateStore) rm1.getRMStateStore();
RMApp app1 = null;
try {
- app1 = rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", -1,
- null, "MAPREDUCE", false);
+ app1 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("MAPREDUCE")
+ .withWaitForAppAcceptedState(false)
+ .build());
Assert.fail();
} catch (Exception e) {
@@ -1915,7 +2088,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
assertQueueMetrics(qm1, 0, 0, 0, 0);
// create app that gets launched and does allocate before RM restart
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
// Need to wait first for AppAttempt to be started (RMAppState.ACCEPTED)
// and then for it to reach RMAppAttemptState.SCHEDULED
// inorder to ensure appsPending metric is incremented
@@ -2110,7 +2283,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
final MockNM nm1 =
new MockNM("127.0.0.1:1234", 15120, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
final MockAM am0 = MockRM.launchAndRegisterAM(app0, rm1, nm1);
MockRM rm2 = new TestSecurityMockRM(conf, rm1.getRMStateStore()) {
@@ -2367,7 +2540,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = launchAM(app0, rm1, nm1);
ApplicationId applicationId = app0.getApplicationId();
@@ -2496,7 +2669,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
int CONTAINER_MEMORY = 1024;
// create app and launch the AM
- RMApp app0 = rm1.submitApp(CONTAINER_MEMORY);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(CONTAINER_MEMORY, rm1);
MockAM am0 = MockRM.launchAM(app0, rm1, nm1);
nm1.nodeHeartbeat(am0.getApplicationAttemptId(), 1,
ContainerState.COMPLETE);
@@ -2550,7 +2723,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// create an app and finish the app.
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = launchAndFailAM(app0, rm1, nm1);
MockAM am1 = launchAndFailAM(app0, rm1, nm1);
@@ -2642,7 +2815,15 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
MockNM nm1 = rm1.registerNode("h1:1234", 8000); // label = x
// submit an application with specifying am node label expression as "x"
- RMApp app1 = rm1.submitApp(200, "someApp", "someUser", null, "a1", "x");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("someApp")
+ .withUser("someUser")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
// check am container allocated with correct node label expression
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
ContainerId amContainerId1 =
@@ -2708,8 +2889,13 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
// Submit an application
Priority appPriority1 = Priority.newInstance(5);
- RMApp app1 = rm.submitApp(2048, appPriority1,
- getCreds(), getTokensConf());
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(2048, rm)
+ .withAppPriority(appPriority1)
+ .withCredentials(getCreds())
+ .withTokensConf(getTokensConf())
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
nm1.nodeHeartbeat(true);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
@@ -2781,7 +2967,7 @@ public class TestRMRestart extends ParameterizedSchedulerTestBase {
// Register node1
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 6 * 1024);
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
nm1.nodeHeartbeat(true);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestResourceTrackerService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestResourceTrackerService.java
index 1fd34a0..6e07afc 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestResourceTrackerService.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestResourceTrackerService.java
@@ -424,7 +424,7 @@ public class TestResourceTrackerService extends NodeLabelTestBase {
rm.waitForState(id3, NodeState.RUNNING);
// Create an app and launch two containers on host1.
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
MockAM am = MockRM.launchAndRegisterAM(app, rm, nm1);
ApplicationAttemptId aaid = app.getCurrentAppAttempt().getAppAttemptId();
nm1.nodeHeartbeat(aaid, 2, ContainerState.RUNNING);
@@ -1622,13 +1622,13 @@ public class TestResourceTrackerService extends NodeLabelTestBase {
RMNodeImpl node2 =
(RMNodeImpl) rm.getRMContext().getRMNodes().get(nm2.getNodeId());
- RMAppImpl app1 = (RMAppImpl) rm.submitApp(1024);
+ RMAppImpl app1 = (RMAppImpl) MockRMAppSubmitter.submitWithMemory(1024, rm);
String collectorAddr1 = "1.2.3.4:5";
app1.setCollectorData(AppCollectorData.newInstance(
app1.getApplicationId(), collectorAddr1));
String collectorAddr2 = "5.4.3.2:1";
- RMAppImpl app2 = (RMAppImpl) rm.submitApp(1024);
+ RMAppImpl app2 = (RMAppImpl) MockRMAppSubmitter.submitWithMemory(1024, rm);
app2.setCollectorData(AppCollectorData.newInstance(
app2.getApplicationId(), collectorAddr2));
@@ -1752,7 +1752,11 @@ public class TestResourceTrackerService extends NodeLabelTestBase {
spy(rm.getRMContext().getDispatcher().getEventHandler());
// Case 1: Unmanaged AM
- RMApp app = rm.submitApp(1024, true);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withUnmanagedAM(true)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
// Case 1.1: AppAttemptId is null
NMContainerStatus report =
@@ -1776,7 +1780,7 @@ public class TestResourceTrackerService extends NodeLabelTestBase {
verify(handler, never()).handle((Event)any());
// Case 2: Managed AM
- app = rm.submitApp(1024);
+ app = MockRMAppSubmitter.submitWithMemory(1024, rm);
// Case 2.1: AppAttemptId is null
report = NMContainerStatus.newInstance(
@@ -2680,7 +2684,11 @@ public class TestResourceTrackerService extends NodeLabelTestBase {
};
rm.start();
- RMApp app = rm.submitApp(1024, true);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withUnmanagedAM(true)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
ApplicationAttemptId appAttemptId = app.getCurrentAppAttempt()
.getAppAttemptId();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestSignalContainer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestSignalContainer.java
index c63df36..9f03a72 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestSignalContainer.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestSignalContainer.java
@@ -57,7 +57,7 @@ public class TestSignalContainer {
MockNM nm1 = rm.registerNode("h1:1234", 5000);
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
//kick the scheduling
nm1.nodeHeartbeat(true);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestSubmitApplicationWithRMHA.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestSubmitApplicationWithRMHA.java
index c4fa74d..cb599ca 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestSubmitApplicationWithRMHA.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestSubmitApplicationWithRMHA.java
@@ -53,11 +53,17 @@ public class TestSubmitApplicationWithRMHA extends RMHATestBase{
// submit the application with previous assigned applicationId
// to current active rm: rm2
RMApp app1 =
- rm2.submitApp(200, "", UserGroupInformation
- .getCurrentUser().getShortUserName(), null, false, null,
- configuration.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null,
- false, false, true, appId);
+ MockRMAppSubmitter.submit(rm2,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm2)
+ .withAppName("")
+ .withUser(UserGroupInformation
+ .getCurrentUser().getShortUserName())
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue(null)
+ .withWaitForAppAcceptedState(false)
+ .withApplicationId(appId)
+ .build());
// verify application submission
verifySubmitApp(rm2, app1, appId);
@@ -106,7 +112,7 @@ public class TestSubmitApplicationWithRMHA extends RMHATestBase{
// Submit Application
// After submission, the applicationState will be saved in RMStateStore.
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
// Do the failover
explicitFailover();
@@ -137,12 +143,24 @@ public class TestSubmitApplicationWithRMHA extends RMHATestBase{
// Submit Application
// After submission, the applicationState will
// not be saved in RMStateStore
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("")
+ .withUser(UserGroupInformation
+ .getCurrentUser().getShortUserName())
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue(null)
+ .withMaxAppAttempts(configuration.getInt(
+ YarnConfiguration.RM_AM_MAX_ATTEMPTS,
+ YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS))
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(false)
+ .build();
RMApp app0 =
- rm1.submitApp(200, "", UserGroupInformation
- .getCurrentUser().getShortUserName(), null, false, null,
- configuration.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null,
- false, false);
+ MockRMAppSubmitter.submit(rm1, data);
// Do the failover
explicitFailover();
@@ -163,11 +181,23 @@ public class TestSubmitApplicationWithRMHA extends RMHATestBase{
// Application with previous applicationId
// when catches the ApplicationNotFoundException
RMApp app1 =
- rm2.submitApp(200, "", UserGroupInformation
- .getCurrentUser().getShortUserName(), null, false, null,
- configuration.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null,
- false, false, true, app0.getApplicationId());
+ MockRMAppSubmitter.submit(rm2,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm2)
+ .withAppName("")
+ .withUser(UserGroupInformation
+ .getCurrentUser().getShortUserName())
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue(null)
+ .withMaxAppAttempts(configuration.getInt(
+ YarnConfiguration.RM_AM_MAX_ATTEMPTS,
+ YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS))
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(false)
+ .withApplicationId(app0.getApplicationId())
+ .build());
verifySubmitApp(rm2, app1, app0.getApplicationId());
}
@@ -183,7 +213,7 @@ public class TestSubmitApplicationWithRMHA extends RMHATestBase{
// Submit Application
// After submission, the applicationState will be saved in RMStateStore.
- RMApp app = rm1.submitApp(200);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(200, rm1);
ApplicationReport appReport1 =
rm1.getApplicationReport(app.getApplicationId());
@@ -235,7 +265,7 @@ public class TestSubmitApplicationWithRMHA extends RMHATestBase{
// Submit Application
// After submission, the applicationState will be saved in RMStateStore.
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
// Do the failover
explicitFailover();
@@ -251,11 +281,22 @@ public class TestSubmitApplicationWithRMHA extends RMHATestBase{
// check whether this application has been exist. If yes, just simply
// return submitApplicationResponse.
RMApp app1 =
- rm2.submitApp(200, "", UserGroupInformation
- .getCurrentUser().getShortUserName(), null, false, null,
- configuration.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null,
- false, false, true, app0.getApplicationId());
+ MockRMAppSubmitter.submit(rm2,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm2)
+ .withAppName("")
+ .withUser(UserGroupInformation
+ .getCurrentUser().getShortUserName())
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue(null)
+ .withMaxAppAttempts(configuration.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
+ YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS))
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(false)
+ .withApplicationId(app0.getApplicationId())
+ .build());
Assert.assertEquals(app1.getApplicationId(), app0.getApplicationId());
}
@@ -273,12 +314,24 @@ public class TestSubmitApplicationWithRMHA extends RMHATestBase{
// Submit Application
// After submission, the applicationState will
// not be saved in RMStateStore
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("")
+ .withUser(UserGroupInformation
+ .getCurrentUser().getShortUserName())
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue(null)
+ .withMaxAppAttempts(configuration.getInt(
+ YarnConfiguration.RM_AM_MAX_ATTEMPTS,
+ YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS))
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(false)
+ .build();
RMApp app0 =
- rm1.submitApp(200, "", UserGroupInformation
- .getCurrentUser().getShortUserName(), null, false, null,
- configuration.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null,
- false, false);
+ MockRMAppSubmitter.submit(rm1, data);
// Do the failover
explicitFailover();
@@ -294,11 +347,23 @@ public class TestSubmitApplicationWithRMHA extends RMHATestBase{
// submitApplication() when failover happens during the submission process
// because the submitApplication api is marked as idempotent
RMApp app1 =
- rm2.submitApp(200, "", UserGroupInformation
- .getCurrentUser().getShortUserName(), null, false, null,
- configuration.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS), null, null,
- false, false, true, app0.getApplicationId());
+ MockRMAppSubmitter.submit(rm2,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm2)
+ .withAppName("")
+ .withUser(UserGroupInformation
+ .getCurrentUser().getShortUserName())
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue(null)
+ .withMaxAppAttempts(configuration.getInt(
+ YarnConfiguration.RM_AM_MAX_ATTEMPTS,
+ YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS))
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(false)
+ .withApplicationId(app0.getApplicationId())
+ .build());
verifySubmitApp(rm2, app1, app0.getApplicationId());
Assert.assertTrue(rm2.getRMContext().getRMApps()
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestWorkPreservingRMRestart.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestWorkPreservingRMRestart.java
index d503cb4..af94859 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestWorkPreservingRMRestart.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestWorkPreservingRMRestart.java
@@ -170,7 +170,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8192, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
Resource amResources = app1.getAMResourceRequests().get(0).getCapability();
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
@@ -335,9 +335,15 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
// dynamic queue.
rm1.getRMContext().getReservationSystem()
.synchronizePlan(ReservationSystemTestUtil.reservationQ, true);
- RMApp app1 = rm1.submitApp(200, "dynamicQApp",
- UserGroupInformation.getCurrentUser().getShortUserName(), null,
- ReservationSystemTestUtil.getReservationQueueName());
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("dynamicQApp")
+ .withUser(UserGroupInformation.getCurrentUser().getShortUserName())
+ .withAcls(null)
+ .withQueue(ReservationSystemTestUtil.getReservationQueueName())
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
Resource amResources = app1.getAMResourceRequests().get(0).getCapability();
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
@@ -618,7 +624,13 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8192, rm1.getResourceTrackerService());
nm1.registerNode();
- final RMApp app1 = rm1.submitApp(1024, "app1", USER_1, null);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app1")
+ .withUser(USER_1)
+ .withAcls(null)
+ .build();
+ final RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1,rm1, nm1);
MockRM.finishAMAndVerifyAppState(app1, rm1, nm1, am1);
@@ -671,12 +683,36 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
new MockNM("127.1.1.1:4321", 8192, rm1.getResourceTrackerService());
nm1.registerNode();
nm2.registerNode();
- RMApp app1_1 = rm1.submitApp(1024, "app1_1", USER_1, null, A);
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app1_1")
+ .withUser(USER_1)
+ .withAcls(null)
+ .withQueue(A)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1_1 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am1_1 = MockRM.launchAndRegisterAM(app1_1, rm1, nm1);
- RMApp app1_2 = rm1.submitApp(1024, "app1_2", USER_1, null, A);
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app1_2")
+ .withUser(USER_1)
+ .withAcls(null)
+ .withQueue(A)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1_2 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1_2 = MockRM.launchAndRegisterAM(app1_2, rm1, nm2);
- RMApp app2 = rm1.submitApp(1024, "app2", USER_2, null, B);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app2")
+ .withUser(USER_2)
+ .withAcls(null)
+ .withQueue(B)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm2);
// clear queue metrics
@@ -842,7 +878,15 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
nm.registerNode();
// Submit an app to QueueB.
- RMApp app = rm1.submitApp(1024, "app", USER_2, null, B);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app")
+ .withUser(USER_2)
+ .withAcls(null)
+ .withQueue(B)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm1, data);
MockRM.launchAndRegisterAM(app, rm1, nm);
assertEquals(rm1.getApplicationReport(app.getApplicationId()).
getYarnApplicationState(), YarnApplicationState.RUNNING);
@@ -890,20 +934,50 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
new MockNM("127.1.1.1:4321", 8192, rm1.getResourceTrackerService());
nm1.registerNode();
nm2.registerNode();
- RMApp app1_1 = rm1.submitApp(1024, "app1_1", USER_1, null, A);
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app1_1")
+ .withUser(USER_1)
+ .withAcls(null)
+ .withQueue(A)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1_1 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am1_1 = MockRM.launchAndRegisterAM(app1_1, rm1, nm1);
- RMApp app1_2 = rm1.submitApp(1024, "app1_2", USER_1, null, A);
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app1_2")
+ .withUser(USER_1)
+ .withAcls(null)
+ .withQueue(A)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1_2 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1_2 = MockRM.launchAndRegisterAM(app1_2, rm1, nm2);
- RMApp app2 = rm1.submitApp(1024, "app2", USER_2, null, B);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app2")
+ .withUser(USER_2)
+ .withAcls(null)
+ .withQueue(B)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm2);
assertEquals(rm1.getApplicationReport(app2.getApplicationId()).
getYarnApplicationState(), YarnApplicationState.RUNNING);
//Submit an app with a non existant queue to make sure it does not
//cause a fatal failure in the non-recovery case
- RMApp appNA = rm1.submitApp(1024, "app1_2", USER_1, null,
- QUEUE_DOESNT_EXIST, false);
+ RMApp appNA = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app1_2")
+ .withUser(USER_1)
+ .withAcls(null)
+ .withQueue(QUEUE_DOESNT_EXIST)
+ .withWaitForAppAcceptedState(false)
+ .build());
// clear queue metrics
rm1.clearQueueMetrics(app1_1);
@@ -941,7 +1015,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8192, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
rm2 = new MockRM(conf, rm1.getRMStateStore());
@@ -994,7 +1068,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8192, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
MockRM.finishAMAndVerifyAppState(app1, rm1, nm1, am1);
@@ -1034,7 +1108,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
nm1.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = MockRM.launchAM(app0, rm1, nm1);
// Issuing registerAppAttempt() before and after RM restart to confirm
// registerApplicationMaster() is idempotent.
@@ -1061,7 +1135,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8192, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1_1 = rm1.submitApp(1024);
+ RMApp app1_1 = MockRMAppSubmitter.submitWithMemory(1024, rm1);
MockAM am1_1 = MockRM.launchAndRegisterAM(app1_1, rm1, nm1);
RMAppAttempt attempt0 = app1_1.getCurrentAppAttempt();
@@ -1097,7 +1171,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
nm1.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = MockRM.launchAndRegisterAM(app0, rm1, nm1);
rm2 = new MockRM(conf, rm1.getRMStateStore());
@@ -1126,7 +1200,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
nm1.registerNode();
rm1.start();
- RMApp app1 = rm1.submitApp(1024);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(1024, rm1);
final MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// Re-start RM
@@ -1222,7 +1296,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8192, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// Restart RM
@@ -1280,7 +1354,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
nm1.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(200);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am0 = MockRM.launchAM(app0, rm1, nm1);
am0.registerAppAttempt();
@@ -1311,7 +1385,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8192, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
MockRM rm2 = new TestSecurityMockRM(conf, rm1.getRMStateStore()) {
@@ -1356,7 +1430,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8192, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// Change the config so that validateAndCreateResourceRequest throws
@@ -1381,10 +1455,12 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
// submit app with keepContainersAcrossApplicationAttempts true
Resource resource = Records.newRecord(Resource.class);
resource.setMemorySize(200);
- RMApp app0 = rm1.submitApp(resource, "", UserGroupInformation
- .getCurrentUser().getShortUserName(), null, false, null,
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS, null, null, true, true,
- false, null, 0, null, true, null);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithResource(resource, rm1)
+ .withKeepContainers(true)
+ .withMaxAppAttempts(YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS)
+ .build();
+ RMApp app0 = MockRMAppSubmitter.submit(rm1, data);
MockAM am0 = MockRM.launchAndRegisterAM(app0, rm1, nm1);
am0.allocate("127.0.0.1", 1000, 2, new ArrayList<ContainerId>());
@@ -1448,7 +1524,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
MockNM nm1 = new MockNM("127.0.0.1:1234", 15120, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
MockRM.finishAMAndVerifyAppState(app1, rm1, nm1, am1);
@@ -1484,7 +1560,11 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
nm1.registerNode();
// create app and launch the UAM
- RMApp app0 = rm1.submitApp(200, true);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withUnmanagedAM(true)
+ .build();
+ RMApp app0 = MockRMAppSubmitter.submit(rm1, data);
MockAM am0 = MockRM.launchUAM(app0, rm1, nm1);
am0.registerAppAttempt();
@@ -1574,7 +1654,11 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
nm1.registerNode();
// create app and launch the UAM
- RMApp app0 = rm1.submitApp(200, true);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withUnmanagedAM(true)
+ .build();
+ RMApp app0 = MockRMAppSubmitter.submit(rm1, data);
MockAM am0 = MockRM.launchUAM(app0, rm1, nm1);
am0.registerAppAttempt();
rm1.killApp(app0.getApplicationId());
@@ -1650,7 +1734,15 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
rm1.getResourceTrackerService());
nm1.registerNode();
// 2. submit app to queue which is auto-created.
- RMApp app1 = rm1.submitApp(200, "autoCreatedQApp", user, null, queueName);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("autoCreatedQApp")
+ .withUser(user)
+ .withAcls(null)
+ .withQueue(queueName)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
Resource amResources = app1.getAMResourceRequests().get(0).getCapability();
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
@@ -1755,7 +1847,7 @@ public class TestWorkPreservingRMRestart extends ParameterizedSchedulerTestBase
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8192, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app = rm1.submitApp(200);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app, rm1, nm1);
MockRM.finishAMAndVerifyAppState(app, rm1, nm1, am1);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestWorkPreservingUnmanagedAM.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestWorkPreservingUnmanagedAM.java
index c8cbfb7..3ed5cfd 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestWorkPreservingUnmanagedAM.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestWorkPreservingUnmanagedAM.java
@@ -76,10 +76,20 @@ public class TestWorkPreservingUnmanagedAM
boolean unamanged = true;
int maxAttempts = 1;
boolean waitForAccepted = true;
- RMApp app = rm.submitApp(200, "",
- UserGroupInformation.getCurrentUser().getShortUserName(), null,
- unamanged, null, maxAttempts, null, null, waitForAccepted,
- keepContainers);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm)
+ .withAppName("")
+ .withUser(UserGroupInformation.getCurrentUser().getShortUserName())
+ .withAcls(null)
+ .withUnmanagedAM(unamanged)
+ .withQueue(null)
+ .withMaxAppAttempts(maxAttempts)
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(waitForAccepted)
+ .withKeepContainers(keepContainers)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
MockAM am = MockRM.launchUAM(app, rm, nm);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/ahs/TestRMApplicationHistoryWriter.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/ahs/TestRMApplicationHistoryWriter.java
index b550123..a77df99 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/ahs/TestRMApplicationHistoryWriter.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/ahs/TestRMApplicationHistoryWriter.java
@@ -27,6 +27,7 @@ import java.util.List;
import java.util.Map;
import java.util.Random;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.junit.Assert;
import org.apache.hadoop.conf.Configuration;
@@ -444,7 +445,7 @@ public class TestRMApplicationHistoryWriter {
rm.start();
MockNM nm = rm.registerNode("127.0.0.1:1234", 1024 * 10100);
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
//Wait to make sure the attempt has the right state
//TODO explore a better way than sleeping for a while (YARN-4929)
Thread.sleep(1000);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRMRPCNodeUpdates.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRMRPCNodeUpdates.java
index dd9bcd0..a14130f 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRMRPCNodeUpdates.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRMRPCNodeUpdates.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.yarn.server.resourcemanager.applicationsmanager;
import java.security.PrivilegedExceptionAction;
import java.util.List;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.junit.Assert;
import org.apache.hadoop.conf.Configuration;
@@ -112,7 +113,7 @@ public class TestAMRMRPCNodeUpdates {
MockNM nm2 = rm.registerNode("127.0.0.2:1234", 10000);
rm.drainEvents();
- RMApp app1 = rm.submitApp(2000);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2000, rm);
// Trigger the scheduling so the AM gets 'launched' on nm1
nm1.nodeHeartbeat(true);
@@ -148,7 +149,7 @@ public class TestAMRMRPCNodeUpdates {
MockNM nm4 = rm.registerNode("127.0.0.4:1234", 10000);
rm.drainEvents();
- RMApp app1 = rm.submitApp(2000);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2000, rm);
// Trigger the scheduling so the AM gets 'launched' on nm1
nm1.nodeHeartbeat(true);
@@ -208,7 +209,7 @@ public class TestAMRMRPCNodeUpdates {
Assert.assertEquals(NodeUpdateType.NODE_UNUSABLE, nr.getNodeUpdateType());
// registering another AM gives it the complete failed list
- RMApp app2 = rm.submitApp(2000);
+ RMApp app2 = MockRMAppSubmitter.submitWithMemory(2000, rm);
// Trigger nm2 heartbeat so that AM gets launched on it
nm2.nodeHeartbeat(true);
RMAppAttempt attempt2 = app2.getCurrentAppAttempt();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRMRPCResponseId.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRMRPCResponseId.java
index d609d7a..aac46f7 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRMRPCResponseId.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRMRPCResponseId.java
@@ -30,6 +30,7 @@ import org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttempt;
import org.junit.After;
@@ -77,7 +78,7 @@ public class TestAMRMRPCResponseId {
MockNM nm1 = rm.registerNode("h1:1234", 5000);
- RMApp app = rm.submitApp(2000);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2000, rm);
// Trigger the scheduling so the AM gets 'launched'
nm1.nodeHeartbeat(true);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRestart.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRestart.java
index 4f2fb1a..c61b8dd 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRestart.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRestart.java
@@ -27,6 +27,7 @@ import java.util.Map;
import com.google.common.base.Throwables;
import com.google.common.collect.Lists;
+import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.test.GenericTestUtils;
import org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse;
import org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterResponse;
@@ -46,6 +47,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
import org.apache.hadoop.yarn.server.resourcemanager.MockMemoryRMStateStore;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.ParameterizedSchedulerTestBase;
import org.apache.hadoop.yarn.server.resourcemanager.TestRMRestart;
import org.apache.hadoop.yarn.server.resourcemanager.recovery.MemoryRMStateStore;
@@ -84,10 +87,21 @@ public class TestAMRestart extends ParameterizedSchedulerTestBase {
MockRM rm1 = new MockRM(getConf());
rm1.start();
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("MAPREDUCE")
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(true)
+ .build();
RMApp app1 =
- rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", -1,
- null, "MAPREDUCE", false, true);
+ MockRMAppSubmitter.submit(rm1, data);
MockNM nm1 =
new MockNM("127.0.0.1:1234", 10240, rm1.getResourceTrackerService());
nm1.registerNode();
@@ -287,10 +301,21 @@ public class TestAMRestart extends ParameterizedSchedulerTestBase {
MockRM rm1 = new MockRM(getConf());
rm1.start();
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("myname")
+ .withUser("myuser")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("MAPREDUCE")
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(true)
+ .build();
RMApp app1 =
- rm1.submitApp(200, "myname", "myuser",
- new HashMap<ApplicationAccessType, String>(), false, "default", -1,
- null, "MAPREDUCE", false, true);
+ MockRMAppSubmitter.submit(rm1, data);
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8000, rm1.getResourceTrackerService());
nm1.registerNode();
@@ -400,7 +425,7 @@ public class TestAMRestart extends ParameterizedSchedulerTestBase {
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8000, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
AbstractYarnScheduler scheduler =
@@ -525,7 +550,7 @@ public class TestAMRestart extends ParameterizedSchedulerTestBase {
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8000, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
AbstractYarnScheduler scheduler =
@@ -566,7 +591,7 @@ public class TestAMRestart extends ParameterizedSchedulerTestBase {
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8000, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
AbstractYarnScheduler scheduler =
@@ -657,7 +682,7 @@ public class TestAMRestart extends ParameterizedSchedulerTestBase {
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8000, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
// AM should be restarted even though max-am-attempt is 1.
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
@@ -735,7 +760,13 @@ public class TestAMRestart extends ParameterizedSchedulerTestBase {
// set window size to a larger number : 60s
// we will verify the app should be failed if
// two continuous attempts failed in 60s.
- RMApp app = rm1.submitApp(200, 60000, false);
+ RMApp app = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("")
+ .withUser(UserGroupInformation.getCurrentUser().getShortUserName())
+ .withKeepContainers(false)
+ .withAttemptFailuresValidityInterval((long) 60000)
+ .build());
MockAM am = MockRM.launchAM(app, rm1, nm1);
// Fail current attempt normally
@@ -756,7 +787,13 @@ public class TestAMRestart extends ParameterizedSchedulerTestBase {
ControlledClock clock = new ControlledClock();
// set window size to 10s
- RMAppImpl app1 = (RMAppImpl)rm1.submitApp(200, 10000, false);
+ RMAppImpl app1 = (RMAppImpl) MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("")
+ .withUser(UserGroupInformation.getCurrentUser().getShortUserName())
+ .withKeepContainers(false)
+ .withAttemptFailuresValidityInterval((long) 10000)
+ .build());
app1.setSystemClock(clock);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// Fail attempt1 normally
@@ -867,10 +904,21 @@ public class TestAMRestart extends ParameterizedSchedulerTestBase {
MockRM rm1 = new MockRM(getConf());
rm1.start();
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("MAPREDUCE")
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(true)
+ .build();
RMApp app1 =
- rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", -1,
- null, "MAPREDUCE", false, true);
+ MockRMAppSubmitter.submit(rm1, data);
MockNM nm1 =
new MockNM("127.0.0.1:1234", 10240, rm1.getResourceTrackerService());
nm1.registerNode();
@@ -972,7 +1020,13 @@ public class TestAMRestart extends ParameterizedSchedulerTestBase {
nm1.registerNode();
// set window size to 10s and enable keepContainers
- RMAppImpl app1 = (RMAppImpl)rm1.submitApp(200, 10000, true);
+ RMAppImpl app1 = (RMAppImpl) MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("")
+ .withUser(UserGroupInformation.getCurrentUser().getShortUserName())
+ .withKeepContainers(true)
+ .withAttemptFailuresValidityInterval((long) 10000)
+ .build());
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
int NUM_CONTAINERS = 2;
allocateContainers(nm1, am1, NUM_CONTAINERS);
@@ -1070,9 +1124,20 @@ public class TestAMRestart extends ParameterizedSchedulerTestBase {
MockNM nm2 = new MockNM(nm2Address, 4089, rm1.getResourceTrackerService());
nm2.registerNode();
- RMApp app1 = rm1.submitApp(200, "name", "user",
- new HashMap<>(), false, "default", -1,
- null, "MAPREDUCE", false, true);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("MAPREDUCE")
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(true)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
allocateContainers(nm1, am1, 1);
@@ -1205,7 +1270,12 @@ public class TestAMRestart extends ParameterizedSchedulerTestBase {
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8000, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(200, 0, true);
+
+ RMApp app1 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAttemptFailuresValidityInterval(0)
+ .withKeepContainers(true)
+ .build());
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
allocateContainers(nm1, am1, 1);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/resource/TestResourceProfiles.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/resource/TestResourceProfiles.java
index 9db129f..e1fdf0a 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/resource/TestResourceProfiles.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/resource/TestResourceProfiles.java
@@ -26,6 +26,7 @@ import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttempt;
import org.junit.Assert;
@@ -162,7 +163,7 @@ public class TestResourceProfiles {
MockRM rm = new MockRM(conf);
rm.start();
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 6 * 1024);
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
nm1.nodeHeartbeat(true);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
MockAM am1 = rm.sendAMLaunched(attempt1.getAppAttemptId());
@@ -175,7 +176,7 @@ public class TestResourceProfiles {
rm = new MockRM(conf);
rm.start();
nm1 = rm.registerNode("127.0.0.1:1234", 6 * 1024);
- app1 = rm.submitApp(2048);
+ app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
nm1.nodeHeartbeat(true);
attempt1 = app1.getCurrentAppAttempt();
am1 = rm.sendAMLaunched(attempt1.getAppAttemptId());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestApplicationLifetimeMonitor.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestApplicationLifetimeMonitor.java
index 8d40936..4e40436 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestApplicationLifetimeMonitor.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestApplicationLifetimeMonitor.java
@@ -49,6 +49,8 @@ import org.apache.hadoop.yarn.server.api.protocolrecords.NMContainerStatus;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.TestRMRestart;
import org.apache.hadoop.yarn.server.resourcemanager.TestWorkPreservingRMRestart;
import org.apache.hadoop.yarn.server.resourcemanager.recovery.MemoryRMStateStore;
@@ -125,18 +127,34 @@ public class TestApplicationLifetimeMonitor {
Map<ApplicationTimeoutType, Long> timeouts =
new HashMap<ApplicationTimeoutType, Long>();
timeouts.put(ApplicationTimeoutType.LIFETIME, 10L);
- RMApp app1 = rm.submitApp(1024, appPriority, timeouts);
+ RMApp app1 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppPriority(appPriority)
+ .withApplicationTimeouts(timeouts)
+ .build());
// 20L seconds
timeouts.put(ApplicationTimeoutType.LIFETIME, 20L);
- RMApp app2 = rm.submitApp(1024, appPriority, timeouts);
+ RMApp app2 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppPriority(appPriority)
+ .withApplicationTimeouts(timeouts)
+ .build());
// user not set lifetime, so queue max lifetime will be considered.
- RMApp app3 = rm.submitApp(1024, appPriority, Collections.emptyMap());
+ RMApp app3 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppPriority(appPriority)
+ .withApplicationTimeouts(Collections.emptyMap())
+ .build());
// asc lifetime exceeds queue max lifetime
timeouts.put(ApplicationTimeoutType.LIFETIME, 40L);
- RMApp app4 = rm.submitApp(1024, appPriority, timeouts);
+ RMApp app4 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppPriority(appPriority)
+ .withApplicationTimeouts(timeouts)
+ .build());
nm1.nodeHeartbeat(true);
// Send launch Event
@@ -235,7 +253,11 @@ public class TestApplicationLifetimeMonitor {
Map<ApplicationTimeoutType, Long> timeouts =
new HashMap<ApplicationTimeoutType, Long>();
timeouts.put(ApplicationTimeoutType.LIFETIME, appLifetime);
- RMApp app1 = rm1.submitApp(200, Priority.newInstance(0), timeouts);
+ RMApp app1 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppPriority(Priority.newInstance(0))
+ .withApplicationTimeouts(timeouts)
+ .build());
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// Re-start RM
@@ -319,7 +341,11 @@ public class TestApplicationLifetimeMonitor {
Map<ApplicationTimeoutType, Long> timeouts =
new HashMap<ApplicationTimeoutType, Long>();
timeouts.put(ApplicationTimeoutType.LIFETIME, appLifetime);
- RMApp app1 = rm1.submitApp(200, Priority.newInstance(0), timeouts);
+ RMApp app1 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppPriority(Priority.newInstance(0))
+ .withApplicationTimeouts(timeouts)
+ .build());
Map<ApplicationTimeoutType, String> updateTimeout =
new HashMap<ApplicationTimeoutType, String>();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestNodesListManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestNodesListManager.java
index 9f0fc8e..0df295c 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestNodesListManager.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestNodesListManager.java
@@ -38,6 +38,7 @@ import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNodes;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.NodesListManager;
import org.apache.hadoop.yarn.server.resourcemanager.NodesListManagerEvent;
import org.apache.hadoop.yarn.server.resourcemanager.NodesListManagerEventType;
@@ -72,12 +73,12 @@ public class TestNodesListManager {
RMNode rmnode = MockNodes.newNodeInfo(1, clusterResource);
// Create killing APP
- RMApp killrmApp = rm.submitApp(200);
+ RMApp killrmApp = MockRMAppSubmitter.submitWithMemory(200, rm);
rm.killApp(killrmApp.getApplicationId());
rm.waitForState(killrmApp.getApplicationId(), RMAppState.KILLED);
// Create finish APP
- RMApp finshrmApp = rm.submitApp(2000);
+ RMApp finshrmApp = MockRMAppSubmitter.submitWithMemory(2000, rm);
nm1.nodeHeartbeat(true);
RMAppAttempt attempt = finshrmApp.getCurrentAppAttempt();
MockAM am = rm.sendAMLaunched(attempt.getAppAttemptId());
@@ -87,7 +88,7 @@ public class TestNodesListManager {
rm.waitForState(am.getApplicationAttemptId(), RMAppAttemptState.FINISHED);
// Create submitted App
- RMApp subrmApp = rm.submitApp(200);
+ RMApp subrmApp = MockRMAppSubmitter.submitWithMemory(200, rm);
// Fire Event for NODE_USABLE
nodesListManager.handle(new NodesListManagerEvent(
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmcontainer/TestRMContainerImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmcontainer/TestRMContainerImpl.java
index 256bd94..9b1512d 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmcontainer/TestRMContainerImpl.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmcontainer/TestRMContainerImpl.java
@@ -53,6 +53,7 @@ import org.apache.hadoop.yarn.server.api.protocolrecords.NMContainerStatus;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.ahs.RMApplicationHistoryWriter;
import org.apache.hadoop.yarn.server.resourcemanager.metrics.SystemMetricsPublisher;
@@ -284,7 +285,7 @@ public class TestRMContainerImpl {
MockRM rm1 = new MockRM(conf);
rm1.start();
MockNM nm1 = rm1.registerNode("unknownhost:1234", 8000);
- RMApp app1 = rm1.submitApp(1024);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(1024, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
ResourceScheduler scheduler = rm1.getResourceScheduler();
@@ -324,7 +325,7 @@ public class TestRMContainerImpl {
rm1.start();
MockNM nm1 = rm1.registerNode("unknownhost:1234", 8000);
- RMApp app1 = rm1.submitApp(1024);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(1024, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
nm1.nodeHeartbeat(am1.getApplicationAttemptId(), 1, ContainerState.RUNNING);
@@ -364,7 +365,7 @@ public class TestRMContainerImpl {
rm1.start();
MockNM nm1 = rm1.registerNode("unknownhost:1234", 8000);
- RMApp app1 = rm1.submitApp(1024);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(1024, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
nm1.nodeHeartbeat(am1.getApplicationAttemptId(), 1, ContainerState.RUNNING);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestAbstractYarnScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestAbstractYarnScheduler.java
index b58c7a4..48f6654 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestAbstractYarnScheduler.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestAbstractYarnScheduler.java
@@ -53,6 +53,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNodes;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.NMLivelinessMonitor;
import org.apache.hadoop.yarn.server.resourcemanager.NodesListManager;
import org.apache.hadoop.yarn.server.resourcemanager.ParameterizedSchedulerTestBase;
@@ -402,7 +404,7 @@ public class TestAbstractYarnScheduler extends ParameterizedSchedulerTestBase {
new SchedulerApplication<FiCaSchedulerApp>(null, mockAPp.getUser());
// Second app with one app attempt
- RMApp app = rm1.submitApp(200);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app, rm1, nm1);
final ContainerId runningContainer =
ContainerId.newContainerId(am1.getApplicationAttemptId(), 2);
@@ -439,9 +441,21 @@ public class TestAbstractYarnScheduler extends ParameterizedSchedulerTestBase {
MockNM nm1 = new MockNM("127.0.0.1:1234",
10240, rm1.getResourceTrackerService());
nm1.registerNode();
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("Test")
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(true)
+ .build();
RMApp app1 =
- rm1.submitApp(200, "name", "user", new HashMap<>(), false, "default",
- -1, null, "Test", false, true);
+ MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// allocate 1 container with tag1
@@ -530,10 +544,21 @@ public class TestAbstractYarnScheduler extends ParameterizedSchedulerTestBase {
MockRM rm1 = new MockRM(conf);
try {
rm1.start();
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("Test")
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(true)
+ .build();
RMApp app1 =
- rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default",
- -1, null, "Test", false, true);
+ MockRMAppSubmitter.submit(rm1, data);
MockNM nm1 =
new MockNM("127.0.0.1:1234", 10240, rm1.getResourceTrackerService());
nm1.registerNode();
@@ -642,10 +667,21 @@ public class TestAbstractYarnScheduler extends ParameterizedSchedulerTestBase {
MockRM rm1 = new MockRM(conf);
try {
rm1.start();
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("Test")
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(true)
+ .build();
RMApp app1 =
- rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default",
- -1, null, "Test", false, true);
+ MockRMAppSubmitter.submit(rm1, data);
MockNM nm1 =
new MockNM("127.0.0.1:1234", 10240, rm1.getResourceTrackerService());
nm1.registerNode();
@@ -730,10 +766,21 @@ public class TestAbstractYarnScheduler extends ParameterizedSchedulerTestBase {
MockRM rm = new MockRM(conf);
try {
rm.start();
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("Test")
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(true)
+ .build();
RMApp rmApp =
- rm.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", -1,
- null, "Test", false, true);
+ MockRMAppSubmitter.submit(rm, data);
MockNM node =
new MockNM("127.0.0.1:1234", 10240, rm.getResourceTrackerService());
node.registerNode();
@@ -988,10 +1035,21 @@ public class TestAbstractYarnScheduler extends ParameterizedSchedulerTestBase {
MockRM rm1 = new MockRM(conf);
try {
rm1.start();
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(-1)
+ .withCredentials(null)
+ .withAppType("Test")
+ .withWaitForAppAcceptedState(false)
+ .withKeepContainers(true)
+ .build();
RMApp app1 =
- rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default",
- -1, null, "Test", false, true);
+ MockRMAppSubmitter.submit(rm1, data);
MockNM nm1 =
new MockNM("127.0.0.1:1234", 10240, rm1.getResourceTrackerService());
nm1.registerNode();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulerOvercommit.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulerOvercommit.java
index 36b5198..119bc6f 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulerOvercommit.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulerOvercommit.java
@@ -56,6 +56,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.AdminService;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.TestResourceTrackerService.NullNodeAttributeStore;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttempt;
@@ -127,7 +129,8 @@ public abstract class TestSchedulerOvercommit {
nmId = nm.getNodeId();
// Start an AM with 2GB
- RMApp app = rm.submitApp(2 * GB);
+ RMApp app = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm).build());
nm.nodeHeartbeat(true);
attempt = app.getCurrentAppAttempt();
am = rm.sendAMLaunched(attempt.getAppAttemptId());
@@ -367,7 +370,11 @@ public abstract class TestSchedulerOvercommit {
waitMemory(scheduler, nmId, 4 * GB, 4 * GB, 200, 5 * 1000);
// Start an AM with 2GB
- RMApp app2 = rm.submitApp(2 * GB, "app2", "user2");
+ RMApp app2 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm)
+ .withAppName("app2")
+ .withUser("user2")
+ .build());
nm.nodeHeartbeat(true);
RMAppAttempt attempt2 = app2.getCurrentAppAttempt();
MockAM am2 = rm.sendAMLaunched(attempt2.getAppAttemptId());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulerUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulerUtils.java
index 645d663..f85f06e 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulerUtils.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulerUtils.java
@@ -77,6 +77,8 @@ import org.apache.hadoop.yarn.ipc.YarnRPC;
import org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager;
import org.apache.hadoop.yarn.resourcetypes.ResourceTypesTestHelper;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.TestAMAuthorization.MockRMWithAMS;
import org.apache.hadoop.yarn.server.resourcemanager.TestAMAuthorization.MyContainerManager;
@@ -690,7 +692,13 @@ public class TestSchedulerUtils {
Map<ApplicationAccessType, String> acls =
new HashMap<ApplicationAccessType, String>(2);
acls.put(ApplicationAccessType.VIEW_APP, "*");
- RMApp app = rm.submitApp(1024, "appname", "appuser", acls);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppName("appname")
+ .withUser("appuser")
+ .withAcls(acls)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
nm1.nodeHeartbeat(true);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulingWithAllocationRequestId.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulingWithAllocationRequestId.java
index 8e98332..db2a576 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulingWithAllocationRequestId.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulingWithAllocationRequestId.java
@@ -28,6 +28,8 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.ParameterizedSchedulerTestBase;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttempt;
@@ -72,7 +74,7 @@ public class TestSchedulingWithAllocationRequestId
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 4 * GB);
MockNM nm2 = rm.registerNode("127.0.0.2:5678", 4 * GB);
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
// kick the scheduling
nm1.nodeHeartbeat(true);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
@@ -114,7 +116,7 @@ public class TestSchedulingWithAllocationRequestId
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 4 * GB);
MockNM nm2 = rm.registerNode("127.0.0.2:5678", 4 * GB);
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
// kick the scheduling
nm1.nodeHeartbeat(true);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
@@ -175,7 +177,12 @@ public class TestSchedulingWithAllocationRequestId
nm2.registerNode();
// submit 1st app
- RMApp app1 = rm.submitApp(1 * GB, "user_0", "a1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("user_0")
+ .withUser("a1")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
// Submit app1 RR with allocationReqId = 5
@@ -190,7 +197,12 @@ public class TestSchedulingWithAllocationRequestId
checkAllocatedContainer(allocated.get(0), 1 * GB, nm1.getNodeId(), 5L);
// Submit another application
- RMApp app2 = rm.submitApp(1 * GB, "user_1", "a2");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("user_1")
+ .withUser("a2")
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm2);
// Submit app2 RR with allocationReqId = 5
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestApplicationLimits.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestApplicationLimits.java
index 172db0a..4ee73f2 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestApplicationLimits.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestApplicationLimits.java
@@ -54,6 +54,8 @@ import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider;
import org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
@@ -824,20 +826,41 @@ public class TestApplicationLimits {
// Submit application to queue c where the default partition capacity is
// zero
- RMApp app1 = rm.submitApp(GB, "app", "user", null, "c", false);
+ RMApp app1 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withWaitForAppAcceptedState(false)
+ .build());
rm.drainEvents();
rm.waitForState(app1.getApplicationId(), RMAppState.ACCEPTED);
assertEquals(RMAppState.ACCEPTED, app1.getState());
rm.killApp(app1.getApplicationId());
- RMApp app2 = rm.submitApp(GB, "app", "user", null, "a1", false);
+ RMApp app2 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withWaitForAppAcceptedState(false)
+ .build());
rm.drainEvents();
rm.waitForState(app2.getApplicationId(), RMAppState.ACCEPTED);
assertEquals(RMAppState.ACCEPTED, app2.getState());
// Check second application is rejected and based on queue level max
// application app is rejected
- RMApp app3 = rm.submitApp(GB, "app", "user", null, "a1", false);
+ RMApp app3 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withWaitForAppAcceptedState(false)
+ .build());
rm.drainEvents();
rm.waitForState(app3.getApplicationId(), RMAppState.FAILED);
assertEquals(RMAppState.FAILED, app3.getState());
@@ -848,15 +871,36 @@ public class TestApplicationLimits {
app3.getDiagnostics().toString());
// based on Global limit of queue usert application is rejected
- RMApp app11 = rm.submitApp(GB, "app", "user", null, "d", false);
+ RMApp app11 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("d")
+ .withWaitForAppAcceptedState(false)
+ .build());
rm.drainEvents();
rm.waitForState(app11.getApplicationId(), RMAppState.ACCEPTED);
assertEquals(RMAppState.ACCEPTED, app11.getState());
- RMApp app12 = rm.submitApp(GB, "app", "user", null, "d", false);
+ RMApp app12 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("d")
+ .withWaitForAppAcceptedState(false)
+ .build());
rm.drainEvents();
rm.waitForState(app12.getApplicationId(), RMAppState.ACCEPTED);
assertEquals(RMAppState.ACCEPTED, app12.getState());
- RMApp app13 = rm.submitApp(GB, "app", "user", null, "d", false);
+ RMApp app13 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("d")
+ .withWaitForAppAcceptedState(false)
+ .build());
rm.drainEvents();
rm.waitForState(app13.getApplicationId(), RMAppState.FAILED);
assertEquals(RMAppState.FAILED, app13.getState());
@@ -867,10 +911,24 @@ public class TestApplicationLimits {
app13.getDiagnostics().toString());
// based on system max limit application is rejected
- RMApp app14 = rm.submitApp(GB, "app", "user2", null, "a2", false);
+ RMApp app14 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user2")
+ .withAcls(null)
+ .withQueue("a2")
+ .withWaitForAppAcceptedState(false)
+ .build());
rm.drainEvents();
rm.waitForState(app14.getApplicationId(), RMAppState.ACCEPTED);
- RMApp app15 = rm.submitApp(GB, "app", "user2", null, "a2", false);
+ RMApp app15 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user2")
+ .withAcls(null)
+ .withQueue("a2")
+ .withWaitForAppAcceptedState(false)
+ .build());
rm.drainEvents();
rm.waitForState(app15.getApplicationId(), RMAppState.FAILED);
assertEquals(RMAppState.FAILED, app15.getState());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestApplicationLimitsByPartition.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestApplicationLimitsByPartition.java
index e02a9b7..a5b9c38 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestApplicationLimitsByPartition.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestApplicationLimitsByPartition.java
@@ -47,6 +47,8 @@ import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
@@ -155,14 +157,38 @@ public class TestApplicationLimitsByPartition {
MockNM nm3 = rm1.registerNode("h3:1234", 10 * GB); // label = <empty>
// Submit app1 with 1Gb AM resource to Queue A1 for label X
- RMApp app1 = rm1.submitApp(GB, "app", "user", null, "a1", "x");
+ MockRMAppSubmissionData data5 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data5);
// Submit app2 with 1Gb AM resource to Queue A1 for label X
- RMApp app2 = rm1.submitApp(GB, "app", "user", null, "a1", "x");
+ MockRMAppSubmissionData data4 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data4);
// Submit 3rd app to Queue A1 for label X, and this will be pending as
// AM limit is already crossed for label X. (2GB)
- RMApp pendingApp = rm1.submitApp(GB, "app", "user", null, "a1", "x");
+ MockRMAppSubmissionData data3 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp pendingApp = MockRMAppSubmitter.submit(rm1, data3);
CapacityScheduler cs = (CapacityScheduler) rm1.getResourceScheduler();
LeafQueue leafQueue = (LeafQueue) cs.getQueue("a1");
@@ -185,16 +211,40 @@ public class TestApplicationLimitsByPartition {
// Now verify the same test case in Queue C1 where label is not configured.
// Submit an app to Queue C1 with empty label
- RMApp app3 = rm1.submitApp(GB, "app", "user", null, "c1");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data2);
MockRM.launchAndRegisterAM(app3, rm1, nm3);
// Submit next app to Queue C1 with empty label
- RMApp app4 = rm1.submitApp(GB, "app", "user", null, "c1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app4 = MockRMAppSubmitter.submit(rm1, data1);
MockRM.launchAndRegisterAM(app4, rm1, nm3);
// Submit 3rd app to Queue C1. This will be pending as Queue's am-limit
// is reached.
- pendingApp = rm1.submitApp(GB, "app", "user", null, "c1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c1")
+ .withUnmanagedAM(false)
+ .build();
+ pendingApp = MockRMAppSubmitter.submit(rm1, data);
leafQueue = (LeafQueue) cs.getQueue("c1");
Assert.assertNotNull(leafQueue);
@@ -262,14 +312,30 @@ public class TestApplicationLimitsByPartition {
MockNM nm3 = rm1.registerNode("h3:1234", 10 * GB); // label = <empty>
// Submit app1 (2 GB) to Queue A1 and label X
- RMApp app1 = rm1.submitApp(2 * GB, "app", "user", null, "a1", "x");
+ MockRMAppSubmissionData data3 =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data3);
// This app must be activated eventhough the am-resource per-partition
// limit is only for 1.5GB.
MockRM.launchAndRegisterAM(app1, rm1, nm1);
// Submit 2nd app to label "X" with one GB and it must be pending since
// am-resource per-partition limit is crossed (1.5 GB was the limit).
- rm1.submitApp(GB, "app", "user", null, "a1", "x");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ MockRMAppSubmitter.submit(rm1, data2);
CapacityScheduler cs = (CapacityScheduler) rm1.getResourceScheduler();
LeafQueue leafQueue = (LeafQueue) cs.getQueue("a1");
@@ -283,14 +349,30 @@ public class TestApplicationLimitsByPartition {
// to see queue level am-resource-limit is still working as expected.
// Submit an app to Queue C1 with empty label (2 GB)
- RMApp app3 = rm1.submitApp(2 * GB, "app", "user", null, "c1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data1);
// This app must be activated even though the am-resource per-queue
// limit is only for 1.5GB
MockRM.launchAndRegisterAM(app3, rm1, nm3);
// Submit 2nd app to C1 (Default label, hence am-limit per-queue will be
// considered).
- rm1.submitApp(GB, "app", "user", null, "c1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c1")
+ .withUnmanagedAM(false)
+ .build();
+ MockRMAppSubmitter.submit(rm1, data);
leafQueue = (LeafQueue) cs.getQueue("c1");
Assert.assertNotNull(leafQueue);
@@ -337,11 +419,27 @@ public class TestApplicationLimitsByPartition {
rm1.registerNode("h3:1234", 10 * GB); // label = <empty>
// Submit app1 (2 GB) to Queue A1 and label X
- RMApp app1 = rm1.submitApp(2 * GB, "app", "user", null, "a1", "x");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
// Submit 2nd app to label "X" with one GB. Since queue am-limit is 2GB,
// 2nd app will be pending and first one will get activated.
- RMApp pendingApp = rm1.submitApp(GB, "app", "user", null, "a1", "x");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp pendingApp = MockRMAppSubmitter.submit(rm1, data);
CapacityScheduler cs = (CapacityScheduler) rm1.getResourceScheduler();
LeafQueue leafQueue = (LeafQueue) cs.getQueue("a1");
@@ -405,14 +503,30 @@ public class TestApplicationLimitsByPartition {
rm1.registerNode("h3:1234", 10 * GB); // label = <empty>
// Submit app1 with 1Gb AM resource to Queue A1 for label X for user0
- RMApp app1 = rm1.submitApp(GB, "app", user_0, null, "a1", "x");
+ MockRMAppSubmissionData data3 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser(user_0)
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data3);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// Place few allocate requests to make it an active application
am1.allocate("*", 1 * GB, 15, new ArrayList<ContainerId>(), "");
// Now submit 2nd app to Queue A1 for label X for user1
- RMApp app2 = rm1.submitApp(GB, "app", user_1, null, "a1", "x");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser(user_1)
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data2);
MockRM.launchAndRegisterAM(app2, rm1, nm1);
CapacityScheduler cs = (CapacityScheduler) rm1.getResourceScheduler();
@@ -426,7 +540,15 @@ public class TestApplicationLimitsByPartition {
// Submit 3rd app to Queue A1 for label X for user1. Now user1 will have
// 2 applications (2 GB resource) and user0 will have one app (1GB).
- RMApp app3 = rm1.submitApp(GB, "app", user_1, null, "a1", "x");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser(user_1)
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am2 = MockRM.launchAndRegisterAM(app3, rm1, nm1);
// Place few allocate requests to make it an active application. This is
@@ -438,7 +560,15 @@ public class TestApplicationLimitsByPartition {
// 4Gb -> 40% of label "X" in queue A1
// Since we have 2 users, 50% of 4Gb will be max for each user. Here user1
// has already crossed this 2GB limit, hence this app will be pending.
- RMApp pendingApp = rm1.submitApp(GB, "app", user_1, null, "a1", "x");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser(user_1)
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp pendingApp = MockRMAppSubmitter.submit(rm1, data);
// Verify active applications count per user and also in queue level.
Assert.assertEquals(3, leafQueue.getNumActiveApplications());
@@ -518,15 +648,39 @@ public class TestApplicationLimitsByPartition {
MockNM nm5 = rm1.registerNode("h5:1234", 10 * GB); // label = <empty>
// Submit app1 with 2Gb AM resource to Queue A1 for label Y
- RMApp app1 = rm1.submitApp(2 * GB, "app", "user", null, "a1", "y");
+ MockRMAppSubmissionData data4 =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("y")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data4);
MockRM.launchAndRegisterAM(app1, rm1, nm2);
// Submit app2 with 1Gb AM resource to Queue A1 for label Y
- RMApp app2 = rm1.submitApp(GB, "app", "user", null, "a1", "y");
+ MockRMAppSubmissionData data3 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("y")
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data3);
MockRM.launchAndRegisterAM(app2, rm1, nm3);
// Submit another app with 1Gb AM resource to Queue A1 for label Y
- rm1.submitApp(GB, "app", "user", null, "a1", "y");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("y")
+ .build();
+ MockRMAppSubmitter.submit(rm1, data2);
CapacityScheduler cs = (CapacityScheduler) rm1.getResourceScheduler();
LeafQueue leafQueue = (LeafQueue) cs.getQueue("a1");
@@ -546,11 +700,27 @@ public class TestApplicationLimitsByPartition {
Assert.assertEquals(1, leafQueue.getNumPendingApplications());
// Submit app3 with 1Gb AM resource to Queue B1 (no_label)
- RMApp app3 = rm1.submitApp(GB, "app", "user", null, "b1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data1);
MockRM.launchAndRegisterAM(app3, rm1, nm5);
// Submit another app with 1Gb AM resource to Queue B1 (no_label)
- rm1.submitApp(GB, "app", "user", null, "b1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ MockRMAppSubmitter.submit(rm1, data);
leafQueue = (LeafQueue) cs.getQueue("b1");
Assert.assertNotNull(leafQueue);
@@ -810,12 +980,30 @@ public class TestApplicationLimitsByPartition {
Resource amResource = Resource.newInstance(GB, 1);
- rm.submitApp(amResource, "app-1", userName, null, queueName);
- rm.submitApp(amResource, "app-2", userName, null, queueName);
+ MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithResource(amResource, rm)
+ .withAppName("app-1")
+ .withUser(userName)
+ .withAcls(null)
+ .withQueue(queueName)
+ .build());
+ MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithResource(amResource, rm)
+ .withAppName("app-2")
+ .withUser(userName)
+ .withAcls(null)
+ .withQueue(queueName)
+ .build());
// app-3 should not be activated as amLimit will be reached
// for memory
- rm.submitApp(amResource, "app-3", userName, null, queueName);
+ MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithResource(amResource, rm)
+ .withAppName("app-3")
+ .withUser(userName)
+ .withAcls(null)
+ .withQueue(queueName)
+ .build());
Assert.assertEquals("PendingApplications should be 1", 1,
queueA.getNumPendingApplications());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestApplicationPriority.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestApplicationPriority.java
index fea82e5..f91526c 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestApplicationPriority.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestApplicationPriority.java
@@ -40,6 +40,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNodes;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.recovery.MemoryRMStateStore;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl;
@@ -160,7 +162,11 @@ public class TestApplicationPriority {
Priority appPriority1 = Priority.newInstance(5);
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 16 * GB);
- RMApp app1 = rm.submitApp(1 * GB, appPriority1);
+ MockRMAppSubmissionData data1 = MockRMAppSubmissionData.Builder
+ .createWithMemory(1 * GB, rm)
+ .withAppPriority(appPriority1)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data1);
// kick the scheduler, 1 GB given to AM1, remaining 15GB on nm1
MockAM am1 = MockRM.launchAM(app1, rm, nm1);
@@ -177,11 +183,16 @@ public class TestApplicationPriority {
SchedulerNodeReport report_nm1 = rm.getResourceScheduler().getNodeReport(
nm1.getNodeId());
Assert.assertEquals(15 * GB, report_nm1.getUsedResource().getMemorySize());
- Assert.assertEquals(1 * GB, report_nm1.getAvailableResource().getMemorySize());
+ Assert.assertEquals(1 * GB,
+ report_nm1.getAvailableResource().getMemorySize());
// Submit the second app App2 with priority 8 (Higher than App1)
Priority appPriority2 = Priority.newInstance(8);
- RMApp app2 = rm.submitApp(1 * GB, appPriority2);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithMemory(1 * GB, rm)
+ .withAppPriority(appPriority2)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
// kick the scheduler, 1 GB which was free is given to AM of App2
MockAM am2 = MockRM.launchAM(app2, rm, nm1);
@@ -190,7 +201,8 @@ public class TestApplicationPriority {
// check node report, 16 GB used and 0 GB available
report_nm1 = rm.getResourceScheduler().getNodeReport(nm1.getNodeId());
Assert.assertEquals(16 * GB, report_nm1.getUsedResource().getMemorySize());
- Assert.assertEquals(0 * GB, report_nm1.getAvailableResource().getMemorySize());
+ Assert.assertEquals(0 * GB,
+ report_nm1.getAvailableResource().getMemorySize());
// get scheduler
CapacityScheduler cs = (CapacityScheduler) rm.getResourceScheduler();
@@ -205,13 +217,15 @@ public class TestApplicationPriority {
if (++counter > 2) {
break;
}
- cs.markContainerForKillable(schedulerAppAttempt.getRMContainer(c.getId()));
+ cs.markContainerForKillable(
+ schedulerAppAttempt.getRMContainer(c.getId()));
}
// check node report, 12 GB used and 4 GB available
report_nm1 = rm.getResourceScheduler().getNodeReport(nm1.getNodeId());
Assert.assertEquals(12 * GB, report_nm1.getUsedResource().getMemorySize());
- Assert.assertEquals(4 * GB, report_nm1.getAvailableResource().getMemorySize());
+ Assert.assertEquals(4 * GB,
+ report_nm1.getAvailableResource().getMemorySize());
// send updated request for App1
am1.allocate("127.0.0.1", 2 * GB, 10, new ArrayList<ContainerId>());
@@ -227,7 +241,8 @@ public class TestApplicationPriority {
// check node report, 16 GB used and 0 GB available
report_nm1 = rm.getResourceScheduler().getNodeReport(nm1.getNodeId());
Assert.assertEquals(16 * GB, report_nm1.getUsedResource().getMemorySize());
- Assert.assertEquals(0 * GB, report_nm1.getAvailableResource().getMemorySize());
+ Assert.assertEquals(0 * GB,
+ report_nm1.getAvailableResource().getMemorySize());
rm.stop();
}
@@ -245,7 +260,11 @@ public class TestApplicationPriority {
Priority appPriority1 = Priority.newInstance(5);
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 8 * GB);
- RMApp app1 = rm.submitApp(1 * GB, appPriority1);
+ MockRMAppSubmissionData data3 = MockRMAppSubmissionData.Builder
+ .createWithMemory(1 * GB, rm)
+ .withAppPriority(appPriority1)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data3);
// kick the scheduler, 1 GB given to AM1, remaining 7GB on nm1
MockAM am1 = MockRM.launchAM(app1, rm, nm1);
@@ -262,19 +281,28 @@ public class TestApplicationPriority {
SchedulerNodeReport report_nm1 = rm.getResourceScheduler().getNodeReport(
nm1.getNodeId());
Assert.assertEquals(8 * GB, report_nm1.getUsedResource().getMemorySize());
- Assert.assertEquals(0 * GB, report_nm1.getAvailableResource().getMemorySize());
+ Assert.assertEquals(0 * GB,
+ report_nm1.getAvailableResource().getMemorySize());
// Submit the second app App2 with priority 7
Priority appPriority2 = Priority.newInstance(7);
- RMApp app2 = rm.submitApp(1 * GB, appPriority2);
+ MockRMAppSubmissionData data2 = MockRMAppSubmissionData.Builder
+ .createWithMemory(1 * GB, rm).withAppPriority(appPriority2).build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data2);
// Submit the third app App3 with priority 8
Priority appPriority3 = Priority.newInstance(8);
- RMApp app3 = rm.submitApp(1 * GB, appPriority3);
+ MockRMAppSubmissionData data1 = MockRMAppSubmissionData.Builder
+ .createWithMemory(1 * GB, rm).withAppPriority(appPriority3).build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm, data1);
// Submit the second app App4 with priority 6
Priority appPriority4 = Priority.newInstance(6);
- RMApp app4 = rm.submitApp(1 * GB, appPriority4);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithMemory(1 * GB, rm)
+ .withAppPriority(appPriority4)
+ .build();
+ RMApp app4 = MockRMAppSubmitter.submit(rm, data);
// Only one app can run as AM resource limit restricts it. Kill app1,
// If app3 (highest priority among rest) gets active, it indicates that
@@ -289,7 +317,8 @@ public class TestApplicationPriority {
// check node report, 1 GB used and 7 GB available
report_nm1 = rm.getResourceScheduler().getNodeReport(nm1.getNodeId());
Assert.assertEquals(1 * GB, report_nm1.getUsedResource().getMemorySize());
- Assert.assertEquals(7 * GB, report_nm1.getAvailableResource().getMemorySize());
+ Assert.assertEquals(7 * GB,
+ report_nm1.getAvailableResource().getMemorySize());
rm.stop();
}
@@ -308,7 +337,9 @@ public class TestApplicationPriority {
Priority appPriority1 = Priority.newInstance(15);
rm.registerNode("127.0.0.1:1234", 8 * GB);
- RMApp app1 = rm.submitApp(1 * GB, appPriority1);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithMemory(1 * GB, rm).withAppPriority(appPriority1).build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// Application submission should be successful and verify priority
Assert.assertEquals(app1.getApplicationSubmissionContext().getPriority(),
@@ -329,7 +360,9 @@ public class TestApplicationPriority {
Priority appPriority1 = Priority.newInstance(5);
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 16 * GB);
- RMApp app1 = rm.submitApp(1 * GB, appPriority1);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithMemory(1 * GB, rm).withAppPriority(appPriority1).build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// kick the scheduler, 1 GB given to AM1, remaining 15GB on nm1
MockAM am1 = MockRM.launchAM(app1, rm, nm1);
@@ -366,7 +399,11 @@ public class TestApplicationPriority {
Priority appPriority1 = Priority.newInstance(5);
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 16 * GB);
- RMApp app1 = rm.submitApp(1 * GB, appPriority1);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithMemory(1 * GB, rm)
+ .withAppPriority(appPriority1)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// kick the scheduler, 1 GB given to AM1, remaining 15GB on nm1
MockAM am1 = MockRM.launchAM(app1, rm, nm1);
@@ -414,7 +451,9 @@ public class TestApplicationPriority {
nm1.registerNode();
Priority appPriority1 = Priority.newInstance(5);
- RMApp app1 = rm1.submitApp(1 * GB, appPriority1);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithMemory(1 * GB, rm1).withAppPriority(appPriority1).build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
// kick the scheduler, 1 GB given to AM1, remaining 15GB on nm1
MockAM am1 = MockRM.launchAM(app1, rm1, nm1);
@@ -469,7 +508,9 @@ public class TestApplicationPriority {
Priority appPriority1 = Priority.newInstance(5);
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 16 * GB);
- RMApp app1 = rm.submitApp(1 * GB, appPriority1);
+ MockRMAppSubmissionData data1 = MockRMAppSubmissionData.Builder
+ .createWithMemory(1 * GB, rm).withAppPriority(appPriority1).build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data1);
// kick the scheduler, 1 GB given to AM1, remaining 15GB on nm1
MockAM am1 = MockRM.launchAM(app1, rm, nm1);
@@ -481,17 +522,23 @@ public class TestApplicationPriority {
NUM_CONTAINERS, 2 * GB, nm1);
Assert.assertEquals(7, allocated1.size());
- Assert.assertEquals(2 * GB, allocated1.get(0).getResource().getMemorySize());
+ Assert.assertEquals(2 * GB,
+ allocated1.get(0).getResource().getMemorySize());
// check node report, 15 GB used (1 AM and 7 containers) and 1 GB available
- SchedulerNodeReport report_nm1 = rm.getResourceScheduler().getNodeReport(
- nm1.getNodeId());
+ SchedulerNodeReport report_nm1 =
+ rm.getResourceScheduler().getNodeReport(nm1.getNodeId());
Assert.assertEquals(15 * GB, report_nm1.getUsedResource().getMemorySize());
- Assert.assertEquals(1 * GB, report_nm1.getAvailableResource().getMemorySize());
+ Assert.assertEquals(1 * GB,
+ report_nm1.getAvailableResource().getMemorySize());
// Submit the second app App2 with priority 8 (Higher than App1)
Priority appPriority2 = Priority.newInstance(8);
- RMApp app2 = rm.submitApp(1 * GB, appPriority2);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithMemory(1 * GB, rm)
+ .withAppPriority(appPriority2)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
// kick the scheduler, 1 GB which was free is given to AM of App2
MockAM am2 = MockRM.launchAM(app2, rm, nm1);
@@ -500,7 +547,8 @@ public class TestApplicationPriority {
// check node report, 16 GB used and 0 GB available
report_nm1 = rm.getResourceScheduler().getNodeReport(nm1.getNodeId());
Assert.assertEquals(16 * GB, report_nm1.getUsedResource().getMemorySize());
- Assert.assertEquals(0 * GB, report_nm1.getAvailableResource().getMemorySize());
+ Assert.assertEquals(0 * GB,
+ report_nm1.getAvailableResource().getMemorySize());
// get scheduler
CapacityScheduler cs = (CapacityScheduler) rm.getResourceScheduler();
@@ -516,14 +564,16 @@ public class TestApplicationPriority {
if (++counter > 2) {
break;
}
- cs.markContainerForKillable(schedulerAppAttemptApp1.getRMContainer(c.getId()));
+ cs.markContainerForKillable(
+ schedulerAppAttemptApp1.getRMContainer(c.getId()));
iterator.remove();
}
// check node report, 12 GB used and 4 GB available
report_nm1 = rm.getResourceScheduler().getNodeReport(nm1.getNodeId());
Assert.assertEquals(12 * GB, report_nm1.getUsedResource().getMemorySize());
- Assert.assertEquals(4 * GB, report_nm1.getAvailableResource().getMemorySize());
+ Assert.assertEquals(4 * GB,
+ report_nm1.getAvailableResource().getMemorySize());
// add request for containers App1
am1.allocate("127.0.0.1", 2 * GB, 10, new ArrayList<ContainerId>());
@@ -536,7 +586,8 @@ public class TestApplicationPriority {
// check node report, 16 GB used and 0 GB available
report_nm1 = rm.getResourceScheduler().getNodeReport(nm1.getNodeId());
Assert.assertEquals(16 * GB, report_nm1.getUsedResource().getMemorySize());
- Assert.assertEquals(0 * GB, report_nm1.getAvailableResource().getMemorySize());
+ Assert.assertEquals(0 * GB,
+ report_nm1.getAvailableResource().getMemorySize());
// kill 1 more
counter = 0;
@@ -546,14 +597,16 @@ public class TestApplicationPriority {
if (++counter > 1) {
break;
}
- cs.markContainerForKillable(schedulerAppAttemptApp1.getRMContainer(c.getId()));
+ cs.markContainerForKillable(
+ schedulerAppAttemptApp1.getRMContainer(c.getId()));
iterator.remove();
}
// check node report, 14 GB used and 2 GB available
report_nm1 = rm.getResourceScheduler().getNodeReport(nm1.getNodeId());
Assert.assertEquals(14 * GB, report_nm1.getUsedResource().getMemorySize());
- Assert.assertEquals(2 * GB, report_nm1.getAvailableResource().getMemorySize());
+ Assert.assertEquals(2 * GB,
+ report_nm1.getAvailableResource().getMemorySize());
// Change the priority of App1 to 3 (lowest)
Priority appPriority3 = Priority.newInstance(3);
@@ -619,13 +672,19 @@ public class TestApplicationPriority {
// App-1 with priority 5 submitted and running
Priority appPriority1 = Priority.newInstance(5);
- RMApp app1 = rm1.submitApp(memory, appPriority1);
+ MockRMAppSubmissionData data2 = MockRMAppSubmissionData.Builder
+ .createWithMemory(memory, rm1).withAppPriority(appPriority1).build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am1 = MockRM.launchAM(app1, rm1, nm1);
am1.registerAppAttempt();
// App-2 with priority 6 submitted and running
Priority appPriority2 = Priority.newInstance(6);
- RMApp app2 = rm1.submitApp(memory, appPriority2);
+ MockRMAppSubmissionData data1 = MockRMAppSubmissionData.Builder
+ .createWithMemory(memory, rm1)
+ .withAppPriority(appPriority2)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am2 = MockRM.launchAM(app2, rm1, nm1);
am2.registerAppAttempt();
@@ -636,7 +695,11 @@ public class TestApplicationPriority {
// App-3 with priority 7 submitted and scheduled. But not activated since
// AMResourceLimit threshold
Priority appPriority3 = Priority.newInstance(7);
- RMApp app3 = rm1.submitApp(memory, appPriority3);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithMemory(memory, rm1)
+ .withAppPriority(appPriority3)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data);
rm1.drainEvents();
Assert.assertEquals(2, defaultQueue.getNumActiveApplications());
@@ -739,7 +802,10 @@ public class TestApplicationPriority {
CSQueue defaultQueue = (LeafQueue) cs.getQueue("default");
// Update priority and kill application with no resource
- RMApp app1 = rm.submitApp(1024, Priority.newInstance(appPriority));
+ MockRMAppSubmissionData data3 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppPriority(Priority.newInstance(appPriority)).build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data3);
Collection<FiCaSchedulerApp> appsPending =
((LeafQueue) defaultQueue).getPendingApplications();
Collection<FiCaSchedulerApp> activeApps =
@@ -756,11 +822,20 @@ public class TestApplicationPriority {
MockNM nm1 =
new MockNM("127.0.0.1:1234", 8096, rm.getResourceTrackerService());
nm1.registerNode();
- RMApp app2 = rm.submitApp(1024, Priority.newInstance(appPriority));
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppPriority(Priority.newInstance(appPriority)).build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data2);
Assert.assertEquals("Pending apps should be 0", 0, appsPending.size());
Assert.assertEquals("Active apps should be 1", 1, activeApps.size());
- RMApp app3 = rm.submitApp(1024, Priority.newInstance(appPriority));
- RMApp app4 = rm.submitApp(1024, Priority.newInstance(appPriority));
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppPriority(Priority.newInstance(appPriority)).build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm, data1);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppPriority(Priority.newInstance(appPriority)).build();
+ RMApp app4 = MockRMAppSubmitter.submit(rm, data);
Assert.assertEquals("Pending apps should be 2", 2, appsPending.size());
Assert.assertEquals("Active apps should be 1", 1, activeApps.size());
// kill app3, pending apps should reduce to 1
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCSAllocateCustomResource.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCSAllocateCustomResource.java
index b9ffb4d..3a817e6 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCSAllocateCustomResource.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCSAllocateCustomResource.java
@@ -26,6 +26,8 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
@@ -122,7 +124,13 @@ public class TestCSAllocateCustomResource {
// submit app
Resource amResource = Resources.createResource(1 * g, 1);
amResource.setResourceValue(customResourceType, 1);
- RMApp app1 = rm.submitApp(amResource, "app", "user", null, "a");
+ RMApp app1 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithResource(amResource, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .build());
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
// am request containers
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacityScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacityScheduler.java
index e8bada8..3725dc4 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacityScheduler.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacityScheduler.java
@@ -109,6 +109,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNodes;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.NodeManager;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.RMContextImpl;
@@ -1334,7 +1336,7 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
MockNM nm = rm.registerNode("127.0.0.1:1234", 4 * GB);
NodeId nmId = nm.getNodeId();
- RMApp app = rm.submitApp(2048);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(2048, rm);
// kick the scheduling, 2 GB given to AM1, remaining 2GB on nm
nm.nodeHeartbeat(true);
RMAppAttempt attempt1 = app.getCurrentAppAttempt();
@@ -1578,7 +1580,13 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
Map<ApplicationAccessType, String> acls =
new HashMap<ApplicationAccessType, String>(2);
acls.put(ApplicationAccessType.VIEW_APP, "*");
- RMApp app = rm.submitApp(1024, "appname", "appuser", acls);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppName("appname")
+ .withUser("appuser")
+ .withAcls(acls)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
nm1.nodeHeartbeat(true);
@@ -1724,7 +1732,7 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
nm1.registerNode();
// create app and launch the AM
- RMApp app0 = rm1.submitApp(CONTAINER_MEMORY);
+ RMApp app0 = MockRMAppSubmitter.submitWithMemory(CONTAINER_MEMORY, rm1);
MockAM am0 = MockRM.launchAM(app0, rm1, nm1);
am0.registerAppAttempt();
@@ -1790,7 +1798,7 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
MockRM rm1 = new MockRM(conf);
rm1.start();
MockNM nm1 = rm1.registerNode("127.0.0.1:1234", 8000);
- RMApp app1 = rm1.submitApp(1024);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(1024, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
CapacityScheduler cs = (CapacityScheduler) rm1.getResourceScheduler();
@@ -1870,7 +1878,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
QueueMetrics metrics = scheduler.getRootQueueMetrics();
Assert.assertEquals(0, metrics.getAppsPending());
// submit an app
- RMApp app = rm.submitApp(GB, "test-move-1", "user_0", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-move-1")
+ .withUser("user_0")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
ApplicationAttemptId appAttemptId =
rm.getApplicationReport(app.getApplicationId())
.getCurrentApplicationAttemptId();
@@ -1942,8 +1958,20 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
Assert.assertEquals(0, metrics.getAppsPending());
// submit two apps in a1
- RMApp app1 = rm.submitApp(GB, "test-move-1", "user_0", null, "a1");
- RMApp app2 = rm.submitApp(GB, "test-move-2", "user_0", null, "a1");
+ RMApp app1 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-move-1")
+ .withUser("user_0")
+ .withAcls(null)
+ .withQueue("a1")
+ .build());
+ RMApp app2 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-move-2")
+ .withUser("user_0")
+ .withAcls(null)
+ .withQueue("a1")
+ .build());
appsInA1 = scheduler.getAppsInQueue("a1");
appsInB1 = scheduler.getAppsInQueue("b1");
@@ -1952,7 +1980,13 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
assertEquals(2, metrics.getAppsPending());
// submit one app in b1
- RMApp app3 = rm.submitApp(GB, "test-move-2", "user_0", null, "b1");
+ RMApp app3 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-move-2")
+ .withUser("user_0")
+ .withAcls(null)
+ .withQueue("b1")
+ .build());
appsInA1 = scheduler.getAppsInQueue("a1");
appsInB1 = scheduler.getAppsInQueue("b1");
@@ -1996,7 +2030,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
(AbstractYarnScheduler) rm.getResourceScheduler();
// submit an app
- RMApp app = rm.submitApp(GB, "test-move-1", "user_0", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-move-1")
+ .withUser("user_0")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
ApplicationAttemptId appAttemptId =
rm.getApplicationReport(app.getApplicationId())
.getCurrentApplicationAttemptId();
@@ -2512,7 +2554,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
(AbstractYarnScheduler) rm.getResourceScheduler();
// submit an app
- RMApp app = rm.submitApp(GB, "test-move-1", "user_0", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-move-1")
+ .withUser("user_0")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
ApplicationAttemptId appAttemptId =
rm.getApplicationReport(app.getApplicationId())
.getCurrentApplicationAttemptId();
@@ -2574,7 +2624,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
YarnScheduler scheduler = rm.getResourceScheduler();
// submit an app
- RMApp app = rm.submitApp(GB, "test-move-1", "user_0", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-move-1")
+ .withUser("user_0")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
ApplicationAttemptId appAttemptId =
rm.getApplicationReport(app.getApplicationId())
.getCurrentApplicationAttemptId();
@@ -2632,7 +2690,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
YarnScheduler scheduler = rm.getResourceScheduler();
// submit an app
- RMApp app = rm.submitApp(GB, "test-move-1", "user_0", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-move-1")
+ .withUser("user_0")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
ApplicationAttemptId appAttemptId =
rm.getApplicationReport(app.getApplicationId())
.getCurrentApplicationAttemptId();
@@ -2890,7 +2956,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
(AbstractYarnScheduler) rm.getResourceScheduler();
// submit an app
- RMApp app = rm.submitApp(GB, "test-move-1", "user_0", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-move-1")
+ .withUser("user_0")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
ApplicationAttemptId appAttemptId =
rm.getApplicationReport(app.getApplicationId())
.getCurrentApplicationAttemptId();
@@ -2935,7 +3009,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
YarnScheduler scheduler = rm.getResourceScheduler();
// submit an app
- RMApp app = rm.submitApp(GB, "test-move-1", "user_0", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-move-1")
+ .withUser("user_0")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
ApplicationAttemptId appAttemptId =
rm.getApplicationReport(app.getApplicationId())
.getCurrentApplicationAttemptId();
@@ -2996,7 +3078,7 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
MockNM nm2 = rm.registerNode("127.0.0.1:1235", 10 * GB, 4);
rm.registerNode("127.0.0.1:1236", 10 * GB, 4);
- RMApp app1 = rm.submitApp(1024);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(1024, rm);
// kick the scheduling
nm1.nodeHeartbeat(true);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
@@ -3568,7 +3650,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
nm3.registerNode();
nm4.registerNode();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
ApplicationAttemptId attemptId =
app1.getCurrentAppAttempt().getAppAttemptId();
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2);
@@ -3719,7 +3809,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
new MockNM("127.0.0.1:1234", 100 * GB, rm1.getResourceTrackerService());
nm1.registerNode();
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "b1");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
waitContainerAllocated(am1, 1 * GB, 1, 2, rm1, nm1);
@@ -3729,7 +3827,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
Assert.assertEquals(69 * GB,
am1.doHeartbeat().getAvailableResources().getMemorySize());
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "b2");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b2")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
// Allocate 5 containers, each one is 8 GB in am2 (40 GB in total)
@@ -3747,7 +3853,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
// Now we submit app3 to a1 (in higher level hierarchy), to see if headroom
// of app1 (in queue b1) updated correctly
- RMApp app3 = rm1.submitApp(1 * GB, "app", "user", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, nm1);
// Allocate 3 containers, each one is 8 GB in am3 (24 GB in total)
@@ -3800,12 +3914,28 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
nm1.registerNode();
// Launch app1 in a1, resource usage is 1GB (am) + 4GB * 2 = 9GB
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
waitContainerAllocated(am1, 4 * GB, 2, 2, rm1, nm1);
// Try to launch app2 in a2, asked 2GB, should success
- RMApp app2 = rm1.submitApp(2 * GB, "app", "user", null, "a2");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a2")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
try {
// Try to allocate a container, a's usage=11G/max=12
@@ -3848,11 +3978,27 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
nm2.registerNode();
// Launch app1 in queue=a1
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "a1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2);
// Launch app2 in queue=b1
- RMApp app2 = rm.submitApp(8 * GB, "app", "user", null, "b1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(8 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm2);
// am1 asks for 8 * 1GB container for no label
@@ -3968,7 +4114,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
amMemory < minAllocMb);
Resource minAllocResource = Resource.newInstance(minAllocMb, 1);
String queueName = "a1";
- RMApp rmApp = rm.submitApp(amMemory, "app-1", "user_0", null, queueName);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(amMemory, rm)
+ .withAppName("app-1")
+ .withUser("user_0")
+ .withAcls(null)
+ .withQueue(queueName)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp rmApp = MockRMAppSubmitter.submit(rm, data);
assertEquals("RMApp does not containes minimum allocation",
minAllocResource, rmApp.getAMResourceRequests().get(0).getCapability());
@@ -4237,7 +4391,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
nm1.registerNode();
// Launch app1 in queue=a1
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
// Allocate two more containers
@@ -4344,9 +4506,23 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
}
}, 100, 60 * 1000);
- rm.submitApp(amResource1, "app-1", userName, null, queueName);
-
- rm.submitApp(amResource2, "app-2", userName, null, queueName);
+ MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithResource(amResource1, rm)
+ .withResource(amResource1)
+ .withAppName("app-1")
+ .withUser(userName)
+ .withAcls(null)
+ .withQueue(queueName)
+ .build());
+
+ MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithResource(amResource2, rm)
+ .withResource(amResource2)
+ .withAppName("app-2")
+ .withUser(userName)
+ .withAcls(null)
+ .withQueue(queueName)
+ .build());
// When AM limit is exceeded, 1 applications will be activated.Rest all
// applications will be in pending
@@ -4532,7 +4708,7 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
MockRM rm = new MockRM(conf);
rm.start();
- RMApp app = rm.submitApp(100);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(100, rm);
rm.drainEvents();
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 10240, 10);
@@ -4814,7 +4990,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
nm1.registerNode();
// Launch app1 in queue=a1
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// Got one offswitch request and offswitch allocation
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
@@ -5148,7 +5332,15 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
CapacityScheduler cs = ((CapacityScheduler) rm.getResourceScheduler());
cs.start();
- RMApp app = rm.submitApp(GB, "appname", "a1", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("appname")
+ .withUser("a1")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
List<ApplicationAttemptId> appsInA1 = cs.getAppsInQueue("a1");
assertEquals(1, appsInA1.size());
}
@@ -5265,7 +5457,12 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
final MockNM nm = rm.registerNode("h1:1234", 200 * GB);
// submit app
- final RMApp app = rm.submitApp(200, "app", "user");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm)
+ .withAppName("app")
+ .withUser("user")
+ .build();
+ final RMApp app = MockRMAppSubmitter.submit(rm, data);
MockRM.launchAndRegisterAM(app, rm, nm);
// spy capacity scheduler to handle CapacityScheduler#apply
@@ -5329,7 +5526,12 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
// submit app and request resource
// container2 is larger than nm1 total resource, will trigger locality skip
- final RMApp app = rm.submitApp(1 * GB, "app", "user");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .build();
+ final RMApp app = MockRMAppSubmitter.submit(rm, data);
final MockAM am = MockRM.launchAndRegisterAM(app, rm, nm1);
am.addRequests(new String[] {"*"}, 5 * GB, 1, 1, 2);
am.schedule();
@@ -5391,19 +5593,51 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
MockNM nm1 = rm.registerNode("h1:1234", 16 * GB);
// submit an app
- RMApp app = rm.submitApp(GB, "test-move-1", "u1", null, "a1");
+ MockRMAppSubmissionData data3 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-move-1")
+ .withUser("u1")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data3);
MockAM am1 = MockRM.launchAndRegisterAM(app, rm, nm1);
ApplicationAttemptId appAttemptId =
rm.getApplicationReport(app.getApplicationId())
.getCurrentApplicationAttemptId();
- RMApp app2 = rm.submitApp(1 * GB, "app", "u2", null, "a1");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("u2")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data2);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm1);
- RMApp app3 = rm.submitApp(1 * GB, "app", "u3", null, "a1");
-
- RMApp app4 = rm.submitApp(1 * GB, "app", "u4", null, "a1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("u3")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm, data1);
+
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("u4")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app4 = MockRMAppSubmitter.submit(rm, data);
// Each application asks 50 * 1GB containers
am1.allocate("*", 1 * GB, 50, null);
@@ -5571,11 +5805,25 @@ public class TestCapacityScheduler extends CapacitySchedulerTestBase {
* app2: (1 AM,1 reserved container)
*/
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app_1", "user_1", null, "a");
+ MockRMAppSubmissionData submissionData =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app_1")
+ .withUser("user_1")
+ .withAcls(null)
+ .withQueue("a")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, submissionData);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// launch another app to queue, AM container should be launched in nm1
- RMApp app2 = rm1.submitApp(1 * GB, "app_2", "user_1", null, "a");
+ submissionData =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app_2")
+ .withUser("user_1")
+ .withAcls(null)
+ .withQueue("a")
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, submissionData);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
am1.allocate("*", 4 * GB, 1, new ArrayList<ContainerId>());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAsyncScheduling.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAsyncScheduling.java
index 67c504d..376a5e8 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAsyncScheduling.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAsyncScheduling.java
@@ -33,11 +33,12 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
-import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttempt;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptState;
import org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainer;
import org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainerEvent;
@@ -146,8 +147,18 @@ public class TestCapacitySchedulerAsyncScheduling {
int totalAsked = 3 * GB; // 3 AMs
for (int i = 0; i < 3; i++) {
- RMApp rmApp = rm.submitApp(1024, "app", "user", null, false,
- Character.toString((char) (i % 34 + 97)), 1, null, null, false);
+ RMApp rmApp = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue(Character.toString((char) (i % 34 + 97)))
+ .withMaxAppAttempts(1)
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(false)
+ .build());
MockAM am = MockRM.launchAMWhenAsyncSchedulingEnabled(rmApp, rm);
am.registerAppAttempt();
ams.add(am);
@@ -220,8 +231,20 @@ public class TestCapacitySchedulerAsyncScheduling {
SchedulerNode sn2 = scheduler.getSchedulerNode(nm2.getNodeId());
// launch app
- RMApp app = rm.submitApp(200, "app", "user", null, false, "default",
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS, null, null, true, true);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS)
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(true)
+ .withKeepContainers(true)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
MockAM am = MockRM.launchAndRegisterAM(app, rm, nm1);
FiCaSchedulerApp schedulerApp =
scheduler.getApplicationAttempt(am.getApplicationAttemptId());
@@ -313,10 +336,26 @@ public class TestCapacitySchedulerAsyncScheduling {
((CapacityScheduler) scheduler).getSchedulerNode(nm2.getNodeId());
// submit app1, am1 is running on nm1
- RMApp app = rm.submitApp(200, "app", "user", null, "default");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data1);
final MockAM am = MockRM.launchAndRegisterAM(app, rm, nm1);
// submit app2, am2 is running on nm1
- RMApp app2 = rm.submitApp(200, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
final MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm1);
// allocate and launch 2 containers for app1
@@ -450,8 +489,20 @@ public class TestCapacitySchedulerAsyncScheduling {
SchedulerNode sn1 = scheduler.getSchedulerNode(nm1.getNodeId());
// launch app
- RMApp app = rm.submitApp(200, "app", "user", null, false, "default",
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS, null, null, true, true);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS)
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(true)
+ .withKeepContainers(true)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
MockAM am = MockRM.launchAndRegisterAM(app, rm, nm1);
FiCaSchedulerApp schedulerApp =
scheduler.getApplicationAttempt(am.getApplicationAttemptId());
@@ -532,8 +583,18 @@ public class TestCapacitySchedulerAsyncScheduling {
keepNMHeartbeat(nms, heartbeatInterval);
for (int i = 0; i < 3; i++) {
- RMApp rmApp = rm.submitApp(1024, "app", "user", null, false,
- Character.toString((char) (i % 34 + 97)), 1, null, null, false);
+ RMApp rmApp = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue(Character.toString((char) (i % 34 + 97)))
+ .withMaxAppAttempts(1)
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(false)
+ .build());
MockAM am = MockRM.launchAMWhenAsyncSchedulingEnabled(rmApp, rm);
am.registerAppAttempt();
ams.add(am);
@@ -632,8 +693,20 @@ public class TestCapacitySchedulerAsyncScheduling {
SchedulerNode sn1 = cs.getSchedulerNode(nm1.getNodeId());
// launch app
- RMApp app = rm.submitApp(1 * GB, "app", "user", null, false, "default",
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS, null, null, true, true);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS)
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(true)
+ .withKeepContainers(true)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
MockAM am = MockRM.launchAndRegisterAM(app, rm, nm1);
FiCaSchedulerApp schedulerApp =
cs.getApplicationAttempt(am.getApplicationAttemptId());
@@ -720,7 +793,15 @@ public class TestCapacitySchedulerAsyncScheduling {
SchedulerNode sn3 = cs.getSchedulerNode(nm3.getNodeId());
// launch another app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(4 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(4 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
Resource allocateResource = Resources.createResource(5 * GB);
am1.allocate("*", (int) allocateResource.getMemorySize(), 3, 0,
@@ -771,13 +852,37 @@ public class TestCapacitySchedulerAsyncScheduling {
SchedulerNode sn1 = cs.getSchedulerNode(nm1.getNodeId());
// launch app1-am on nm1
- RMApp app1 = rm.submitApp(1 * GB, "app1", "user", null, false, "default",
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS, null, null, true, true);
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app1")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS)
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(true)
+ .withKeepContainers(true)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
// launch app2-am on nm2
- RMApp app2 = rm.submitApp(1 * GB, "app2", "user", null, false, "default",
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS, null, null, true, true);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app2")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS)
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(true)
+ .withKeepContainers(true)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm2);
// app2 asks 1 * 8G container
@@ -865,8 +970,20 @@ public class TestCapacitySchedulerAsyncScheduling {
SchedulerNode sn2 = cs.getSchedulerNode(nm2.getNodeId());
// launch app1-am on nm1
- RMApp app1 = rm.submitApp(1 * GB, "app1", "user", null, false, "default",
- YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS, null, null, true, true);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app1")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS)
+ .withCredentials(null)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(true)
+ .withKeepContainers(true)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
// app2 asks 1 * 1G container
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAutoCreatedQueueBase.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAutoCreatedQueueBase.java
index 8e68984..fa02a53 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAutoCreatedQueueBase.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAutoCreatedQueueBase.java
@@ -24,7 +24,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.CommonConfigurationKeys;
-import org.apache.hadoop.security.GroupMappingServiceProvider;
import org.apache.hadoop.security.ShellBasedUnixGroupsMapping;
import org.apache.hadoop.security.TestGroupsCaching;
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
@@ -39,6 +38,8 @@ import org.apache.hadoop.yarn.event.EventHandler;
import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels
.NullRMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
@@ -64,8 +65,6 @@ import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event
.AppAttemptAddedSchedulerEvent;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event
.SchedulerEvent;
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair
- .SimpleGroupsMapping;
import org.apache.hadoop.yarn.server.utils.BuilderUtils;
import org.apache.hadoop.yarn.util.Records;
import org.apache.hadoop.yarn.util.YarnVersionInfo;
@@ -469,8 +468,15 @@ public class TestCapacitySchedulerAutoCreatedQueueBase {
CapacityScheduler capacityScheduler =
(CapacityScheduler) rm.getResourceScheduler();
// submit an app
- RMApp rmApp = rm.submitApp(GB, "test-auto-queue-activation", user, null,
- leafQueueName);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-auto-queue-activation")
+ .withUser(user)
+ .withAcls(null)
+ .withQueue(leafQueueName)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp rmApp = MockRMAppSubmitter.submit(rm, data);
// check preconditions
List<ApplicationAttemptId> appsInParentQueue =
@@ -564,9 +570,15 @@ public class TestCapacitySchedulerAutoCreatedQueueBase {
protected RMApp submitApp(String user, String queue, String nodeLabel)
throws Exception {
- RMApp app = mockRM.submitApp(GB,
- "test-auto-queue-creation" + RandomUtils.nextInt(0, 100), user, null,
- queue, nodeLabel);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, mockRM)
+ .withAppName("test-auto-queue-creation" + RandomUtils.nextInt(0, 100))
+ .withUser(user)
+ .withAcls(null)
+ .withQueue(queue)
+ .withAmLabel(nodeLabel)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(mockRM, data);
Assert.assertEquals(app.getAmNodeLabelExpression(), nodeLabel);
// check preconditions
List<ApplicationAttemptId> appsInC = cs.getAppsInQueue(PARENT_QUEUE);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAutoQueueCreation.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAutoQueueCreation.java
index 5f32e0d..7dde06c 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAutoQueueCreation.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAutoQueueCreation.java
@@ -31,6 +31,8 @@ import org.apache.hadoop.yarn.factories.RecordFactory;
import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider;
import org.apache.hadoop.yarn.server.resourcemanager.MockNodes;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.RMContextImpl;
import org.apache.hadoop.yarn.server.resourcemanager.placement
@@ -70,7 +72,6 @@ import org.junit.Assert;
import org.junit.Test;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -171,11 +172,25 @@ public class TestCapacitySchedulerAutoQueueCreation
// submit an app
- RMApp app1 = mockRM.submitApp(GB, "test-auto-queue-creation-1", USER0,
- null, USER0);
-
- RMApp app2 = mockRM.submitApp(GB, "test-auto-queue-creation-2", USER1,
- null, USER1);
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, mockRM)
+ .withAppName("test-auto-queue-creation-1")
+ .withUser(USER0)
+ .withAcls(null)
+ .withQueue(USER0)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(mockRM, data1);
+
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, mockRM)
+ .withAppName("test-auto-queue-creation-2")
+ .withUser(USER1)
+ .withAcls(null)
+ .withQueue(USER1)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(mockRM, data);
// check preconditions
List<ApplicationAttemptId> appsInC = cs.getAppsInQueue(PARENT_QUEUE);
assertEquals(2, appsInC.size());
@@ -350,8 +365,14 @@ public class TestCapacitySchedulerAutoQueueCreation
// submit an app under a different queue name which does not exist
// and queue mapping does not exist for this user
- RMApp app = mockRM.submitApp(GB, "app", INVALID_USER, null, INVALID_USER,
- false);
+ RMApp app = MockRMAppSubmitter.submit(mockRM,
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, mockRM)
+ .withAppName("app")
+ .withUser(INVALID_USER)
+ .withAcls(null)
+ .withQueue(INVALID_USER)
+ .withWaitForAppAcceptedState(false)
+ .build());
mockRM.drainEvents();
mockRM.waitForState(app.getApplicationId(), RMAppState.FAILED);
assertEquals(RMAppState.FAILED, app.getState());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerDynamicBehavior.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerDynamicBehavior.java
index 104145e..eb17c61 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerDynamicBehavior.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerDynamicBehavior.java
@@ -29,6 +29,8 @@ import org.slf4j.LoggerFactory;
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.reservation.ReservationConstants;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppState;
@@ -168,7 +170,15 @@ public class TestCapacitySchedulerDynamicBehavior {
a1.setEntitlement(new QueueEntitlement(A1_CAPACITY / 100, 1f));
// submit an app
- RMApp app = rm.submitApp(GB, "test-move-1", "user_0", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-move-1")
+ .withUser("user_0")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
// check preconditions
List<ApplicationAttemptId> appsInA1 = cs.getAppsInQueue("a1");
assertEquals(1, appsInA1.size());
@@ -203,7 +213,15 @@ public class TestCapacitySchedulerDynamicBehavior {
CapacityScheduler scheduler = (CapacityScheduler) rm.getResourceScheduler();
// submit an app
- RMApp app = rm.submitApp(GB, "test-move-1", "user_0", null, "b1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("test-move-1")
+ .withUser("user_0")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
ApplicationAttemptId appAttemptId =
rm.getApplicationReport(app.getApplicationId())
.getCurrentApplicationAttemptId();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerLazyPreemption.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerLazyPreemption.java
index a5d3539..1b6dd62 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerLazyPreemption.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerLazyPreemption.java
@@ -25,6 +25,8 @@ import org.apache.hadoop.yarn.api.records.ResourceRequest;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.monitor.SchedulingMonitor;
import org.apache.hadoop.yarn.server.resourcemanager.monitor.SchedulingMonitorManager;
import org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy;
@@ -93,7 +95,15 @@ public class TestCapacitySchedulerLazyPreemption
RMNode rmNode2 = rm1.getRMContext().getRMNodes().get(nm2.getNodeId());
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
am1.allocate("*", 1 * GB, 7, new ArrayList<ContainerId>());
@@ -110,7 +120,15 @@ public class TestCapacitySchedulerLazyPreemption
Assert.assertEquals(7, schedulerApp1.getLiveContainers().size());
// Submit app2 to queue-c and asks for a 1G container for AM
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm2);
// NM1/NM2 has available resource = 0G
@@ -184,7 +202,15 @@ public class TestCapacitySchedulerLazyPreemption
RMNode rmNode2 = rm1.getRMContext().getRMNodes().get(nm2.getNodeId());
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
am1.allocate("*", 1 * GB, 6, new ArrayList<ContainerId>());
@@ -201,7 +227,15 @@ public class TestCapacitySchedulerLazyPreemption
Assert.assertEquals(7, schedulerApp1.getLiveContainers().size());
// Submit app2 to queue-c and asks for a 1G container for AM
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm2);
// NM1/NM2 has available resource = 0G
@@ -277,7 +311,15 @@ public class TestCapacitySchedulerLazyPreemption
RMNode rmNode2 = rm1.getRMContext().getRMNodes().get(nm2.getNodeId());
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
am1.allocate("*", 1 * GB, 6, new ArrayList<ContainerId>());
@@ -296,7 +338,15 @@ public class TestCapacitySchedulerLazyPreemption
Assert.assertEquals(7, schedulerApp1.getLiveContainers().size());
// Submit app2 to queue-c and asks for a 1G container for AM
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm2);
// NM1/NM2 has available resource = 0G
@@ -381,7 +431,15 @@ public class TestCapacitySchedulerLazyPreemption
RMNode rmNode1 = rm1.getRMContext().getRMNodes().get(nm1.getNodeId());
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
am1.allocate("*", 1 * GB, 6, new ArrayList<ContainerId>());
@@ -397,7 +455,15 @@ public class TestCapacitySchedulerLazyPreemption
Assert.assertEquals(7, schedulerApp1.getLiveContainers().size());
// Submit app2 to queue-c and asks for a 1G container for AM
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
// NM1 has available resource = 0G
@@ -484,7 +550,15 @@ public class TestCapacitySchedulerLazyPreemption
RMNode rmNode1 = rm1.getRMContext().getRMNodes().get(nm1.getNodeId());
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
am1.allocate("*", 1 * GB, 6, new ArrayList<ContainerId>());
@@ -500,7 +574,15 @@ public class TestCapacitySchedulerLazyPreemption
Assert.assertEquals(7, schedulerApp1.getLiveContainers().size());
// Submit app2 to queue-c and asks for a 1G container for AM
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
// NM1 has available resource = 0G
@@ -575,7 +657,15 @@ public class TestCapacitySchedulerLazyPreemption
RMNode rmNode2 = rm1.getRMContext().getRMNodes().get(nm2.getNodeId());
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
am1.allocate("*", 1 * GB, 6, new ArrayList<ContainerId>());
@@ -592,7 +682,15 @@ public class TestCapacitySchedulerLazyPreemption
Assert.assertEquals(7, schedulerApp1.getLiveContainers().size());
// Submit app2 to queue-c and asks for a 1G container for AM
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm2);
// NM1/NM2 has available resource = 0G
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerMultiNodes.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerMultiNodes.java
index 0e29576..fa85ca7 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerMultiNodes.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerMultiNodes.java
@@ -33,6 +33,8 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode;
@@ -120,7 +122,15 @@ public class TestCapacitySchedulerMultiNodes extends CapacitySchedulerTestBase {
.getNodesPerPartition("");
Assert.assertEquals(4, nodes.size());
- RMApp app1 = rm.submitApp(2048, "app-1", "user1", null, "default");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(2048, rm)
+ .withAppName("app-1")
+ .withUser("user1")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
SchedulerNodeReport reportNm1 =
rm.getResourceScheduler().getNodeReport(nm1.getNodeId());
@@ -134,7 +144,15 @@ public class TestCapacitySchedulerMultiNodes extends CapacitySchedulerTestBase {
// Hence forcefully recompute nodes.
sorter.reSortClusterNodes();
- RMApp app2 = rm.submitApp(1024, "app-2", "user2", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppName("app-2")
+ .withUser("user2")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm2);
SchedulerNodeReport reportNm2 =
rm.getResourceScheduler().getNodeReport(nm2.getNodeId());
@@ -184,11 +202,23 @@ public class TestCapacitySchedulerMultiNodes extends CapacitySchedulerTestBase {
MockNM nm2 = rm1.registerNode("h2:1234", 8 * GB);
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(5 * GB, "app", "user", null, "default");
+ RMApp app1 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(5 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .build());
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// launch another app to queue, AM container should be launched in nm2
- RMApp app2 = rm1.submitApp(5 * GB, "app", "user", null, "default");
+ RMApp app2 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(5 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .build());
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm2);
CapacityScheduler cs = (CapacityScheduler) rm1.getResourceScheduler();
@@ -263,11 +293,23 @@ public class TestCapacitySchedulerMultiNodes extends CapacitySchedulerTestBase {
MockNM nm2 = rm1.registerNode("h2:1234", 8 * GB);
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(5 * GB, "app", "user", null, "default");
+ RMApp app1 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(5 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .build());
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// launch another app to queue, AM container should be launched in nm2
- RMApp app2 = rm1.submitApp(5 * GB, "app", "user", null, "default");
+ RMApp app2 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(5 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .build());
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm2);
CapacityScheduler cs = (CapacityScheduler) rm1.getResourceScheduler();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerNodeLabelUpdate.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerNodeLabelUpdate.java
index e239191..b0cf8bb 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerNodeLabelUpdate.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerNodeLabelUpdate.java
@@ -38,6 +38,8 @@ import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -220,7 +222,15 @@ public class TestCapacitySchedulerNodeLabelUpdate {
ContainerId containerId;
// launch an app to queue a1 (label = x), and check all container will
// be allocated in h1
- RMApp app1 = rm.submitApp(GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm3);
ApplicationResourceUsageReport appResourceUsageReport =
rm.getResourceScheduler().getAppResourceUsageReport(
@@ -285,7 +295,15 @@ public class TestCapacitySchedulerNodeLabelUpdate {
// launch an app to queue a1 (label = x), and check all container will
// be allocated in h1
- RMApp app1 = rm.submitApp(GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm3);
// request a container.
@@ -446,7 +464,15 @@ public class TestCapacitySchedulerNodeLabelUpdate {
MockNM nm4 = rm.registerNode("h4:1234", 4096 * 2);
// launch an app to queue a1 (label = x), and check all container will
// be allocated in h1
- RMApp app1 = rm.submitApp(GB, "app", "user", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm3);
am1.allocate("*", GB, 1, new ArrayList<ContainerId>(), "x");
ContainerId container1 =
@@ -524,7 +550,15 @@ public class TestCapacitySchedulerNodeLabelUpdate {
MockNM nm2 = rm.registerNode("h2:1234", 80000);
// app1
- RMApp app1 = rm.submitApp(GB, "app", "u1", null, "a");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("u1")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2);
// c2 on n1, c3 on n2
@@ -540,7 +574,15 @@ public class TestCapacitySchedulerNodeLabelUpdate {
RMContainerState.ALLOCATED));
// app2
- RMApp app2 = rm.submitApp(GB, "app", "u2", null, "a");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("u2")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm2);
// c2/c3 on n1
@@ -664,7 +706,15 @@ public class TestCapacitySchedulerNodeLabelUpdate {
// launch an app to queue a1 (label = x), and check all container will
// be allocated in h1
- RMApp app1 = rm.submitApp(GB, "app", "user", null, "a", "x");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withAmLabel("x")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
// request a container.
@@ -760,7 +810,15 @@ public class TestCapacitySchedulerNodeLabelUpdate {
rm.registerNode("h9:1234", 2048);
// Submit app with AM container launched on default partition i.e. h1.
- RMApp app = rm.submitApp(GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
MockRM.launchAndRegisterAM(app, rm, nm1);
RMAppAttempt appAttempt = app.getCurrentAppAttempt();
// Add default node blacklist from default
@@ -776,7 +834,15 @@ public class TestCapacitySchedulerNodeLabelUpdate {
Assert.assertEquals(2, blacklistUpdates.getBlacklistRemovals().size());
// Submission in label x
- RMApp applabel = rm.submitApp(GB, "app", "user", null, "a", "x");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withAmLabel("x")
+ .build();
+ RMApp applabel = MockRMAppSubmitter.submit(rm, data1);
MockRM.launchAndRegisterAM(applabel, rm, nm2);
RMAppAttempt appAttemptlabelx = applabel.getCurrentAppAttempt();
appAttemptlabelx.getAMBlacklistManager().addNode("h2");
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerSchedulingRequestUpdate.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerSchedulingRequestUpdate.java
index ee7e013..3007a5a 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerSchedulingRequestUpdate.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerSchedulingRequestUpdate.java
@@ -30,6 +30,8 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -75,11 +77,27 @@ public class TestCapacitySchedulerSchedulingRequestUpdate
nm2.registerNode();
// Launch app1 in queue=a1
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "a1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2);
// Launch app2 in queue=b1
- RMApp app2 = rm.submitApp(8 * GB, "app", "user", null, "b1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(8 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm2);
// am1 asks for 8 * 1GB container for no label
am1.allocateIntraAppAntiAffinity(
@@ -193,11 +211,27 @@ public class TestCapacitySchedulerSchedulingRequestUpdate
nm2.registerNode();
// Launch app1 in queue=a1
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "a1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2);
// Launch app2 in queue=b1
- RMApp app2 = rm.submitApp(8 * GB, "app", "user", null, "b1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(8 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm2);
// am1 asks for 8 * 1GB container for "x"
am1.allocateIntraAppAntiAffinity("x",
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerSurgicalPreemption.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerSurgicalPreemption.java
index c2f4511..95a0cc2 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerSurgicalPreemption.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerSurgicalPreemption.java
@@ -30,6 +30,8 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.monitor.SchedulingMonitor;
import org.apache.hadoop.yarn.server.resourcemanager.monitor.SchedulingMonitorManager;
import org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy;
@@ -121,7 +123,15 @@ public class TestCapacitySchedulerSurgicalPreemption
RMNode rmNode2 = rm1.getRMContext().getRMNodes().get(nm2.getNodeId());
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", user1, null, queue1);
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser(user1)
+ .withAcls(null)
+ .withQueue(queue1)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
am1.allocate("*", 1 * GB, 32, new ArrayList<ContainerId>());
@@ -144,7 +154,15 @@ public class TestCapacitySchedulerSurgicalPreemption
// Submit app2 to queue-c and asks for a 1G container for AM
- RMApp app2 = rm1.submitApp(1 * GB, "app", user2, null, queue2);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser(user2)
+ .withAcls(null)
+ .withQueue(queue2)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
// NM1/NM2 has available resource = 2G/4G
@@ -229,7 +247,15 @@ public class TestCapacitySchedulerSurgicalPreemption
RMNode rmNode2 = rm1.getRMContext().getRMNodes().get(nm2.getNodeId());
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
am1.allocate("*", 1 * GB, 38, new ArrayList<ContainerId>());
@@ -252,7 +278,15 @@ public class TestCapacitySchedulerSurgicalPreemption
// Submit app2 to queue-c and asks for a 4G container for AM
- RMApp app2 = rm1.submitApp(4 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(4 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
FiCaSchedulerApp schedulerApp2 = cs.getApplicationAttempt(
ApplicationAttemptId.newInstance(app2.getApplicationId(), 1));
@@ -333,7 +367,15 @@ public class TestCapacitySchedulerSurgicalPreemption
RMNode rmNode2 = rm1.getRMContext().getRMNodes().get(nm2.getNodeId());
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "b");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
am1.allocate("*", 1 * GB, 6, new ArrayList<>());
@@ -356,7 +398,15 @@ public class TestCapacitySchedulerSurgicalPreemption
am1.getApplicationAttemptId(), 3);
// Submit app2 to queue-c and asks for a 1G container for AM
- RMApp app2 = rm1.submitApp(18 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(18 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
FiCaSchedulerApp schedulerApp2 = cs.getApplicationAttempt(
ApplicationAttemptId.newInstance(app2.getApplicationId(), 1));
@@ -442,7 +492,15 @@ public class TestCapacitySchedulerSurgicalPreemption
RMNode rmNode3 = rm1.getRMContext().getRMNodes().get(nm3.getNodeId());
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(2 * GB, "app", "user", null, "b");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
am1.allocate("*", 2 * GB, 2, new ArrayList<>());
@@ -464,7 +522,15 @@ public class TestCapacitySchedulerSurgicalPreemption
am1.getApplicationAttemptId(), 2);
// Submit app2 to queue-c and asks for a 2G container for AM, on n3
- RMApp app2 = rm1.submitApp(2 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm3);
FiCaSchedulerApp schedulerApp2 = cs.getApplicationAttempt(
ApplicationAttemptId.newInstance(app2.getApplicationId(), 1));
@@ -567,7 +633,15 @@ public class TestCapacitySchedulerSurgicalPreemption
}
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "b");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, mockNMs[0]);
am1.allocate("*", 1 * GB, 8, new ArrayList<>());
@@ -588,7 +662,15 @@ public class TestCapacitySchedulerSurgicalPreemption
// Submit app2 to queue-c and asks for a 10G container for AM
// Launch AM in NM9
- RMApp app2 = rm1.submitApp(10 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(10 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, mockNMs[9]);
FiCaSchedulerApp schedulerApp2 = cs.getApplicationAttempt(
ApplicationAttemptId.newInstance(app2.getApplicationId(), 1));
@@ -711,7 +793,15 @@ public class TestCapacitySchedulerSurgicalPreemption
}
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", users[2], null, queues[2]);
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser(users[2])
+ .withAcls(null)
+ .withQueue(queues[2])
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, mockNMs[4]);
am1.allocate("*", 1 * GB, 4, new ArrayList<>());
@@ -731,7 +821,15 @@ public class TestCapacitySchedulerSurgicalPreemption
}
// Submit app2 to queue-a and asks for a 0.5G container for AM (on n0)
- RMApp app2 = rm1.submitApp(512, "app", users[0], null, queues[0]);
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(512, rm1)
+ .withAppName("app")
+ .withUser(users[0])
+ .withAcls(null)
+ .withQueue(queues[0])
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, mockNMs[0]);
FiCaSchedulerApp schedulerApp2 = cs.getApplicationAttempt(
ApplicationAttemptId.newInstance(app2.getApplicationId(), 1));
@@ -753,7 +851,15 @@ public class TestCapacitySchedulerSurgicalPreemption
}
// Submit app3 to queue-b and asks for a 0.5G container for AM (on n2)
- RMApp app3 = rm1.submitApp(512, "app", users[1], null, queues[1]);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(512, rm1)
+ .withAppName("app")
+ .withUser(users[1])
+ .withAcls(null)
+ .withQueue(queues[1])
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, mockNMs[2]);
FiCaSchedulerApp schedulerApp3 = cs.getApplicationAttempt(
ApplicationAttemptId.newInstance(app3.getApplicationId(), 1));
@@ -943,7 +1049,15 @@ public class TestCapacitySchedulerSurgicalPreemption
}
// launch an app to queue B, AM container launched in nm4
- RMApp app1 = rm1.submitApp(4096, "app", "user", null, "B");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(4096, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("B")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, mockNMs[4]);
am1.allocate("*", 4096, NUM_NM-1, new ArrayList<>());
@@ -963,7 +1077,15 @@ public class TestCapacitySchedulerSurgicalPreemption
}
// Submit app2 to queue A and asks for a 750MB container for AM (on n0)
- RMApp app2 = rm1.submitApp(1024, "app", "user", null, "A");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("A")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, mockNMs[0]);
FiCaSchedulerApp schedulerApp2 = cs.getApplicationAttempt(
ApplicationAttemptId.newInstance(app2.getApplicationId(), 1));
@@ -980,7 +1102,15 @@ public class TestCapacitySchedulerSurgicalPreemption
rm1.killApp(app1.getApplicationId());
// Submit app3 to queue B and asks for a 5000MB container for AM (on n2)
- RMApp app3 = rm1.submitApp(1024, "app", "user", null, "B");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("B")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, mockNMs[2]);
FiCaSchedulerApp schedulerApp3 = cs.getApplicationAttempt(
ApplicationAttemptId.newInstance(app3.getApplicationId(), 1));
@@ -1056,7 +1186,15 @@ public class TestCapacitySchedulerSurgicalPreemption
CapacityScheduler cs = (CapacityScheduler) rm1.getResourceScheduler();
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(3 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(3 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nms.get(0));
am1.allocate("*", 21 * GB, 4, new ArrayList<ContainerId>());
@@ -1074,7 +1212,15 @@ public class TestCapacitySchedulerSurgicalPreemption
Assert.assertEquals(5, schedulerApp1.getLiveContainers().size());
// launch an app to queue, AM container should be launched in nm1
- RMApp app2 = rm1.submitApp(3 * GB, "app", "user", null, "b");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(3 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nms.get(2));
am2.allocate("*", 21 * GB, 4, new ArrayList<ContainerId>());
@@ -1162,7 +1308,15 @@ public class TestCapacitySchedulerSurgicalPreemption
RMNode rmNode2 = rm1.getRMContext().getRMNodes().get(nm2.getNodeId());
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
am1.allocate("*", 1 * GB, 38, new ArrayList<ContainerId>());
@@ -1185,7 +1339,15 @@ public class TestCapacitySchedulerSurgicalPreemption
// Submit app2 to queue-c and asks for a 4G container for AM
- RMApp app2 = rm1.submitApp(4 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(4 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
FiCaSchedulerApp schedulerApp2 = cs.getApplicationAttempt(
ApplicationAttemptId.newInstance(app2.getApplicationId(), 1));
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerWithMultiResourceTypes.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerWithMultiResourceTypes.java
index 720e787..0da979c 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerWithMultiResourceTypes.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerWithMultiResourceTypes.java
@@ -29,6 +29,8 @@ import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.resource.TestResourceProfiles;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
import org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainerState;
@@ -285,7 +287,13 @@ public class TestCapacitySchedulerWithMultiResourceTypes {
rm.registerNode("127.0.0.1:1235",
TestUtils.createResource(10 * GB, 4, nameToValues));
- RMApp app1 = rm.submitApp(1024, "app-1", "user1", null, "a");
+ RMApp app1 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppName("app-1")
+ .withUser("user1")
+ .withAcls(null)
+ .withQueue("a")
+ .build());
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
SchedulerNodeReport report_nm1 =
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerWorkflowPriorityMapping.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerWorkflowPriorityMapping.java
index 2a679a1..044f5ab 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerWorkflowPriorityMapping.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerWorkflowPriorityMapping.java
@@ -28,6 +28,8 @@ import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.Priority;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.WorkflowPriorityMappingsManager.WorkflowPriorityMapping;
@@ -97,10 +99,15 @@ public class TestCapacitySchedulerWorkflowPriorityMapping
.getWorkflowPriorityMappings());
// Maps to rule corresponding to parent queue "a" for workflow3.
- mockRM.submitApp(1, "a2", true, ApplicationId.newInstance(0,1),
- Priority.newInstance(0), ImmutableSet.of(
- YarnConfiguration.DEFAULT_YARN_WORKFLOW_ID_TAG_PREFIX
- + "workflow3"));
+ MockRMAppSubmitter.submit(mockRM,
+ MockRMAppSubmissionData.Builder.createWithMemory(1, mockRM)
+ .withQueue("a2")
+ .withApplicationId(ApplicationId.newInstance(0, 1))
+ .withAppPriority(Priority.newInstance(0))
+ .withApplicationTags(ImmutableSet.of(
+ YarnConfiguration.DEFAULT_YARN_WORKFLOW_ID_TAG_PREFIX
+ + "workflow3"))
+ .build());
RMApp app =
mockRM.getRMContext().getRMApps().get(ApplicationId.newInstance(0,1));
assertEquals(4, app.getApplicationSubmissionContext().getPriority()
@@ -108,30 +115,45 @@ public class TestCapacitySchedulerWorkflowPriorityMapping
// Does not match any rule as rule for queue + workflow does not exist.
// Priority passed in the app is taken up.
- mockRM.submitApp(1, "a1", true, ApplicationId.newInstance(0,2),
- Priority.newInstance(6), ImmutableSet.of(
- YarnConfiguration.DEFAULT_YARN_WORKFLOW_ID_TAG_PREFIX
- + "workflow1"));
+ MockRMAppSubmitter.submit(mockRM,
+ MockRMAppSubmissionData.Builder.createWithMemory(1, mockRM)
+ .withQueue("a1")
+ .withApplicationId(ApplicationId.newInstance(0, 2))
+ .withAppPriority(Priority.newInstance(6))
+ .withApplicationTags(ImmutableSet.of(
+ YarnConfiguration.DEFAULT_YARN_WORKFLOW_ID_TAG_PREFIX
+ + "workflow1"))
+ .build());
app =
mockRM.getRMContext().getRMApps().get(ApplicationId.newInstance(0,2));
assertEquals(6, app.getApplicationSubmissionContext().getPriority()
.getPriority());
// Maps to rule corresponding to parent queue "a1" for workflow2.
- mockRM.submitApp(1, "a1", true, ApplicationId.newInstance(0,3),
- Priority.newInstance(0), ImmutableSet.of(
- YarnConfiguration.DEFAULT_YARN_WORKFLOW_ID_TAG_PREFIX
- + "workflow2"));
+ MockRMAppSubmitter.submit(mockRM,
+ MockRMAppSubmissionData.Builder.createWithMemory(1, mockRM)
+ .withQueue("a1")
+ .withApplicationId(ApplicationId.newInstance(0, 3))
+ .withAppPriority(Priority.newInstance(0))
+ .withApplicationTags(ImmutableSet.of(
+ YarnConfiguration.DEFAULT_YARN_WORKFLOW_ID_TAG_PREFIX
+ + "workflow2"))
+ .build());
app =
mockRM.getRMContext().getRMApps().get(ApplicationId.newInstance(0,3));
assertEquals(3, app.getApplicationSubmissionContext().getPriority()
.getPriority());
// Maps to rule corresponding to parent queue "b" for workflow1.
- mockRM.submitApp(1, "b3", true, ApplicationId.newInstance(0,4),
- Priority.newInstance(0), ImmutableSet.of(
- YarnConfiguration.DEFAULT_YARN_WORKFLOW_ID_TAG_PREFIX
- + "workflow1"));
+ MockRMAppSubmitter.submit(mockRM,
+ MockRMAppSubmissionData.Builder.createWithMemory(1, mockRM)
+ .withQueue("b3")
+ .withApplicationId(ApplicationId.newInstance(0, 4))
+ .withAppPriority(Priority.newInstance(0))
+ .withApplicationTags(ImmutableSet.of(
+ YarnConfiguration.DEFAULT_YARN_WORKFLOW_ID_TAG_PREFIX
+ + "workflow1"))
+ .build());
app = mockRM.getRMContext().getRMApps().get(ApplicationId.newInstance(0,4));
assertEquals(2, app.getApplicationSubmissionContext().getPriority()
.getPriority());
@@ -140,10 +162,16 @@ public class TestCapacitySchedulerWorkflowPriorityMapping
conf.setBoolean(CapacitySchedulerConfiguration
.ENABLE_WORKFLOW_PRIORITY_MAPPINGS_OVERRIDE, false);
cs.reinitialize(conf, mockRM.getRMContext());
- mockRM.submitApp(1, "a2", true, ApplicationId.newInstance(0,5),
- Priority.newInstance(0), ImmutableSet.of(
- YarnConfiguration.DEFAULT_YARN_WORKFLOW_ID_TAG_PREFIX
- + "workflow3"));
+
+ MockRMAppSubmitter.submit(mockRM,
+ MockRMAppSubmissionData.Builder.createWithMemory(1, mockRM)
+ .withQueue("a2")
+ .withApplicationId(ApplicationId.newInstance(0, 5))
+ .withAppPriority(Priority.newInstance(0))
+ .withApplicationTags(ImmutableSet.of(
+ YarnConfiguration.DEFAULT_YARN_WORKFLOW_ID_TAG_PREFIX
+ + "workflow3"))
+ .build());
app = mockRM.getRMContext().getRMApps().get(ApplicationId.newInstance(0,5));
assertEquals(0, app.getApplicationSubmissionContext().getPriority()
.getPriority());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerAllocation.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerAllocation.java
index 22b311d..61d9a2d 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerAllocation.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerAllocation.java
@@ -44,6 +44,8 @@ import org.apache.hadoop.yarn.server.api.ContainerType;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.RMContextImpl;
import org.apache.hadoop.yarn.server.resourcemanager.RMSecretManagerService;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager;
@@ -115,7 +117,7 @@ public class TestContainerAllocation {
}
Assert.assertEquals(2, rm.getRMContext().getRMNodes().size());
// Submit an application
- RMApp app1 = rm.submitApp(128);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(128, rm);
// kick the scheduling
nm1.nodeHeartbeat(true);
@@ -167,7 +169,7 @@ public class TestContainerAllocation {
MockRM rm1 = new MockRM(conf);
rm1.start();
MockNM nm1 = rm1.registerNode("127.0.0.1:1234", 8000);
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// request a container.
am1.allocate("127.0.0.1", 1024, 1, new ArrayList<ContainerId>());
@@ -196,7 +198,7 @@ public class TestContainerAllocation {
MockRM rm1 = new MockRM(conf);
rm1.start();
MockNM nm1 = rm1.registerNode("unknownhost:1234", 8000);
- RMApp app1 = rm1.submitApp(200);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// request a container.
@@ -264,7 +266,10 @@ public class TestContainerAllocation {
private LogAggregationContext getLogAggregationContextFromContainerToken(
MockRM rm1, MockNM nm1, LogAggregationContext logAggregationContext)
throws Exception {
- RMApp app2 = rm1.submitApp(200, logAggregationContext);
+ RMApp app2 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withLogAggregationContext(logAggregationContext)
+ .build());
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
nm1.nodeHeartbeat(true);
// request a container.
@@ -332,7 +337,7 @@ public class TestContainerAllocation {
RMApp app1;
try {
SecurityUtilTestHelper.setTokenServiceUseIp(true);
- app1 = rm1.submitApp(200);
+ app1 = MockRMAppSubmitter.submitWithMemory(200, rm1);
RMAppAttempt attempt = app1.getCurrentAppAttempt();
nm1.nodeHeartbeat(true);
@@ -370,11 +375,27 @@ public class TestContainerAllocation {
MockNM nm2 = rm1.registerNode("h2:1234", 8 * GB);
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// launch another app to queue, AM container should be launched in nm1
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
am1.allocate("*", 4 * GB, 1, new ArrayList<ContainerId>());
@@ -453,11 +474,27 @@ public class TestContainerAllocation {
MockNM nm2 = rm1.registerNode("h2:1234", 8 * GB);
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// launch another app to queue, AM container should be launched in nm1
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
am1.allocate("*", 4 * GB, 1, new ArrayList<ContainerId>());
@@ -549,11 +586,27 @@ public class TestContainerAllocation {
MockNM nm2 = rm1.registerNode("h2:1234", 8 * GB);
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// launch another app to queue, AM container should be launched in nm1
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
am1.allocate("*", 4 * GB, 1, new ArrayList<ContainerId>());
@@ -621,7 +674,15 @@ public class TestContainerAllocation {
MockNM nm1 = rm1.registerNode("h1:1234", 80 * GB);
// launch an app to queue, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
am1.allocate("*", 1 * GB, 5, new ArrayList<ContainerId>());
@@ -670,12 +731,28 @@ public class TestContainerAllocation {
MockNM nm2 = rm1.registerNode("h2:1234", 90 * GB);
// launch an app to queue A, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(2 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// launch 2nd app to queue B, AM container should be launched in nm1
// Now usage of nm1 is 3G (2G + 1G)
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "b");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
am1.allocate("*", 4 * GB, 2, null);
@@ -722,11 +799,27 @@ public class TestContainerAllocation {
MockNM nm2 = rm1.registerNode("h2:1234", 8 * GB);
// launch an app to queue default, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(2 * GB, "app", "u1", null, "default");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("u1")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// launch 2nd app to queue default, AM container should be launched in nm1
- RMApp app2 = rm1.submitApp(4 * GB, "app", "u2", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(4 * GB, rm1)
+ .withAppName("app")
+ .withUser("u2")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
// am1 asks 1 * 3G container
@@ -813,15 +906,39 @@ public class TestContainerAllocation {
MockNM nm1 = rm1.registerNode("h1:1234", 100 * GB);
// launch an app to queue A, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(2 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// launch an app to queue B, AM container should be launched in nm1
- RMApp app2 = rm1.submitApp(2 * GB, "app", "user", null, "b");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
// launch an app to queue C, AM container should be launched in nm1
- RMApp app3 = rm1.submitApp(2 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, nm1);
// Each application asks 10 * 5GB containers
@@ -918,11 +1035,27 @@ public class TestContainerAllocation {
MockNM nm1 = rm1.registerNode("h1:1234", 1000 * GB);
// launch app from 1st user to queue C, AM container should be launched in nm1
- RMApp app1 = rm1.submitApp(2 * GB, "app", "user1", null, "c");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user1")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// launch app from 2nd user to queue C, AM container should be launched in nm1
- RMApp app2 = rm1.submitApp(2 * GB, "app", "user2", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user2")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
// Each application asks 1000 * 5GB containers
@@ -965,15 +1098,47 @@ public class TestContainerAllocation {
rm1.start();
MockNM nm1 = rm1.registerNode("h1:1234", 8 * GB);
- RMApp app1 = rm1.submitApp(1 * GB, "app", "u1", null, "default");
+ MockRMAppSubmissionData data3 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("u1")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data3);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
- RMApp app2 = rm1.submitApp(1 * GB, "app", "u2", null, "default");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("u2")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
- RMApp app3 = rm1.submitApp(1 * GB, "app", "u3", null, "default");
-
- RMApp app4 = rm1.submitApp(1 * GB, "app", "u4", null, "default");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("u3")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data1);
+
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("u4")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app4 = MockRMAppSubmitter.submit(rm1, data);
// Each application asks 50 * 1GB containers
am1.allocate("*", 1 * GB, 50, null);
@@ -1031,11 +1196,27 @@ public class TestContainerAllocation {
MockNM nm2 = rm1.registerNode("h2:1234", 8 * GB);
// launch an app to queue "a", AM container should be launched on nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// launch another app to queue "b", AM container should be launched on nm1
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "b");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockRM.launchAndRegisterAM(app2, rm1, nm1);
am1.allocate("*", 7 * GB, 2, new ArrayList<ContainerId>());
@@ -1112,11 +1293,27 @@ public class TestContainerAllocation {
MockNM nm2 = rm1.registerNode("h2:1234", 10 * GB);
// launch an app to queue "c1", AM container should be launched on nm1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "c1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// launch another app to queue "b", AM container should be launched on nm1
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "b");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
am1.allocate("*", 2 * GB, 1, new ArrayList<ContainerId>());
@@ -1156,7 +1353,15 @@ public class TestContainerAllocation {
// submit an app beyond queue max leads to failure.
boolean submitFailed = false;
MockNM nm1 = rm1.registerNode("h1:1234", 2 * GB, 1);
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
try {
am1.allocate("*", 5 * GB, 1, null);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerResizing.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerResizing.java
index f9bc7c4..c1b1c52 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerResizing.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerResizing.java
@@ -42,6 +42,8 @@ import org.apache.hadoop.yarn.event.DrainDispatcher;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -125,7 +127,15 @@ public class TestContainerResizing {
MockNM nm1 = rm1.registerNode("h1:1234", 20 * GB);
// app1 -> a1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
ContainerId containerId1 =
@@ -183,7 +193,15 @@ public class TestContainerResizing {
MockNM nm1 = rm1.registerNode("h1:1234", 20 * GB);
// app1 -> a1
- RMApp app1 = rm1.submitApp(3 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(3 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
FiCaSchedulerApp app = TestUtils.getFiCaSchedulerApp(
rm1, app1.getApplicationId());
@@ -248,7 +266,15 @@ public class TestContainerResizing {
MockNM nm2 = rm1.registerNode("h2:1234", 8 * GB);
// app1 -> a1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
FiCaSchedulerApp app = TestUtils.getFiCaSchedulerApp(
@@ -349,7 +375,15 @@ public class TestContainerResizing {
MockNM nm1 = rm1.registerNode("h1:1234", 8 * GB);
// app1 -> a1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
FiCaSchedulerApp app = TestUtils.getFiCaSchedulerApp(
@@ -424,7 +458,15 @@ public class TestContainerResizing {
MockNM nm2 = rm1.registerNode("h2:1234", 8 * GB);
// app1 -> a1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
FiCaSchedulerApp app = TestUtils.getFiCaSchedulerApp(
@@ -538,7 +580,15 @@ public class TestContainerResizing {
MockNM nm2 = rm1.registerNode("h2:1234", 8 * GB);
// app1 -> a1
- RMApp app1 = rm1.submitApp(2 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
FiCaSchedulerApp app = TestUtils.getFiCaSchedulerApp(
@@ -655,7 +705,15 @@ public class TestContainerResizing {
MockNM nm2 = rm1.registerNode("h2:1234", 8 * GB);
// app1 -> a1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
FiCaSchedulerApp app = TestUtils.getFiCaSchedulerApp(
@@ -759,7 +817,15 @@ public class TestContainerResizing {
MockNM nm2 = rm1.registerNode("h2:1234", 8 * GB);
// app1 -> a1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
FiCaSchedulerApp app = TestUtils.getFiCaSchedulerApp(
@@ -883,7 +949,15 @@ public class TestContainerResizing {
MockNM nm1 = rm1.registerNode("h1:1234", 10 * GB);
// app1 -> a1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
FiCaSchedulerApp app = TestUtils.getFiCaSchedulerApp(
@@ -964,7 +1038,15 @@ public class TestContainerResizing {
// register a node
MockNM nm = rm.registerNode("h1:1234", 20 * GB);
// submit an application -> app1
- RMApp app1 = rm.submitApp(3 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(3 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm);
// making sure resource is allocated
checkUsedResource(rm, "default", 3 * GB, null);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestIncreaseAllocationExpirer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestIncreaseAllocationExpirer.java
index a800bef..67d4353 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestIncreaseAllocationExpirer.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestIncreaseAllocationExpirer.java
@@ -33,6 +33,8 @@ import org.apache.hadoop.yarn.event.DrainDispatcher;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -82,7 +84,15 @@ public class TestIncreaseAllocationExpirer {
rm1.start();
// Submit an application
MockNM nm1 = rm1.registerNode("127.0.0.1:1234", 20 * GB);
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// Report AM container status RUNNING to remove it from expirer
nm1.nodeHeartbeat(
@@ -166,7 +176,15 @@ public class TestIncreaseAllocationExpirer {
};
rm1.start();
MockNM nm1 = rm1.registerNode("127.0.0.1:1234", 20 * GB);
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
nm1.nodeHeartbeat(
app1.getCurrentAppAttempt()
@@ -242,7 +260,15 @@ public class TestIncreaseAllocationExpirer {
rm1.start();
// Submit an application
MockNM nm1 = rm1.registerNode("127.0.0.1:1234", 20 * GB);
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
nm1.nodeHeartbeat(
app1.getCurrentAppAttempt()
@@ -359,7 +385,15 @@ public class TestIncreaseAllocationExpirer {
rm1.start();
// Submit an application
MockNM nm1 = rm1.registerNode("127.0.0.1:1234", 20 * GB);
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
nm1.nodeHeartbeat(
app1.getCurrentAppAttempt()
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestNodeLabelContainerAllocation.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestNodeLabelContainerAllocation.java
index 737db5b..9e45759 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestNodeLabelContainerAllocation.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestNodeLabelContainerAllocation.java
@@ -37,6 +37,8 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
@@ -178,7 +180,15 @@ public class TestNodeLabelContainerAllocation {
// launch an app to queue a1 (label = x), and check all container will
// be allocated in h1
- RMApp app1 = rm1.submitApp(200, "app", "user", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// A has only 10% of x, so it can only allocate one container in label=empty
@@ -268,7 +278,15 @@ public class TestNodeLabelContainerAllocation {
// launch an app to queue a1 (label = x), and check all container will
// be allocated in h1
- RMApp app1 = rm1.submitApp(1024, "app", "user", null, "a1");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// request a container (label = y). can be allocated on nm2
@@ -282,7 +300,15 @@ public class TestNodeLabelContainerAllocation {
// launch an app to queue b1 (label = y), and check all container will
// be allocated in h5
- RMApp app2 = rm1.submitApp(1024, "app", "user", null, "b1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm5);
// request a container for AM, will succeed
@@ -296,7 +322,15 @@ public class TestNodeLabelContainerAllocation {
RMContainerState.ALLOCATED));
// launch an app to queue b2
- RMApp app3 = rm1.submitApp(1024, "app", "user", null, "b2");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b2")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, nm5);
// request a container. try to allocate on nm1 (label = x) and nm3 (label =
@@ -347,7 +381,15 @@ public class TestNodeLabelContainerAllocation {
// launch an app to queue a1 (label = x), and check all container will
// be allocated in h1
- RMApp app1 = rm1.submitApp(200, "app", "user", null, "a1");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm3);
// request a container.
@@ -363,7 +405,15 @@ public class TestNodeLabelContainerAllocation {
// launch an app to queue b1 (label = y), and check all container will
// be allocated in h2
- RMApp app2 = rm1.submitApp(200, "app", "user", null, "b1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm3);
// request a container.
@@ -378,7 +428,15 @@ public class TestNodeLabelContainerAllocation {
// launch an app to queue c1 (label = ""), and check all container will
// be allocated in h3
- RMApp app3 = rm1.submitApp(200, "app", "user", null, "c1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, nm3);
// request a container.
@@ -423,7 +481,15 @@ public class TestNodeLabelContainerAllocation {
// launch an app to queue a1 (label = x), and check all container will
// be allocated in h1
- RMApp app1 = rm1.submitApp(200, "app", "user", null, "a1");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// request a container.
@@ -439,7 +505,15 @@ public class TestNodeLabelContainerAllocation {
// launch an app to queue b1 (label = y), and check all container will
// be allocated in h2
- RMApp app2 = rm1.submitApp(200, "app", "user", null, "b1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm2);
// request a container.
@@ -454,7 +528,15 @@ public class TestNodeLabelContainerAllocation {
// launch an app to queue c1 (label = ""), and check all container will
// be allocated in h3
- RMApp app3 = rm1.submitApp(200, "app", "user", null, "c1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, nm3);
// request a container.
@@ -503,7 +585,15 @@ public class TestNodeLabelContainerAllocation {
// launch an app to queue a1 (label = x), and check all container will
// be allocated in h1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// request a container.
@@ -569,10 +659,26 @@ public class TestNodeLabelContainerAllocation {
// launch an app to queue a1 (label = x), and check all container will
// be allocated in h1
- RMApp app1 = rm1.submitApp(1 * GB, "app1", "user", null, "a1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app1")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
- RMApp app2 = rm1.submitApp(1 * GB, "app2", "user", null, "a1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app2")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockRM.launchAndRegisterAM(app2, rm1, nm1);
// request a container.
@@ -654,7 +760,15 @@ public class TestNodeLabelContainerAllocation {
MockNM nm2 = rm1.registerNode("h2:1234", 40 * GB); // label = y
// launch an app to queue b1 (label = y), AM container should be launched in
// nm2
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "b1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm2);
// Creating request set when request before ANY is not having label and any
// is having label
@@ -752,11 +866,27 @@ public class TestNodeLabelContainerAllocation {
MockNM nm2 = rm1.registerNode("h2:1234", 100 * GB); // label = <empty>
// launch an app to queue b1 (label = y), AM container should be launched in nm2
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "b1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm2);
// launch another app to queue b1 (label = y), AM container should be launched in nm2
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "b1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm2);
// request container and nm1 do heartbeat (nm2 has label=y), note that app1
@@ -830,7 +960,15 @@ public class TestNodeLabelContainerAllocation {
MockNM nm2 = rm1.registerNode("h2:1234", 100 * GB); // label = <empty>
// launch an app to queue b1 (label = y), AM container should be launched in nm3
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "b1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm2);
// request containers from am2, priority=1 asks for "" and priority=2 asks
@@ -881,7 +1019,15 @@ public class TestNodeLabelContainerAllocation {
ContainerId nextContainerId;
// launch an app to queue b1 (label = y), AM container should be launched in nm3
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "b1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm2);
// request containers from am2, priority=1 asks for "" * 6 (id from 4 to 9),
@@ -999,27 +1145,75 @@ public class TestNodeLabelContainerAllocation {
MockNM nm2 = rm1.registerNode("h2:1234", 100 * GB); // label = <empty>
// app1 -> a1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a1");
+ MockRMAppSubmissionData data5 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data5);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// app2 -> a2
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "a2");
+ MockRMAppSubmissionData data4 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a2")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data4);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm2);
// app3 -> b1
- RMApp app3 = rm1.submitApp(1 * GB, "app", "user", null, "b1");
+ MockRMAppSubmissionData data3 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data3);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, nm1);
// app4 -> b2
- RMApp app4 = rm1.submitApp(1 * GB, "app", "user", null, "b2");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b2")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app4 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am4 = MockRM.launchAndRegisterAM(app4, rm1, nm2);
// app5 -> c1
- RMApp app5 = rm1.submitApp(1 * GB, "app", "user", null, "c1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app5 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am5 = MockRM.launchAndRegisterAM(app5, rm1, nm1);
// app6 -> b2
- RMApp app6 = rm1.submitApp(1 * GB, "app", "user", null, "c2");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c2")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app6 = MockRMAppSubmitter.submit(rm1, data);
MockAM am6 = MockRM.launchAndRegisterAM(app6, rm1, nm2);
// Each application request 5 * 1GB container
@@ -1108,7 +1302,15 @@ public class TestNodeLabelContainerAllocation {
MockNM nm2 = rm1.registerNode("h2:1234", 10 * GB); // label = <empty>
// app1 -> b
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "b");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm2);
// Each application request 50 * 1GB container
@@ -1172,7 +1374,15 @@ public class TestNodeLabelContainerAllocation {
MockNM nm1 = rm1.registerNode(nodeIdStr, 8 * GB); // label = x
// launch an app to queue b1 (label = y), AM container should be launched in nm3
- RMApp app = rm1.submitApp(1 * GB, "app", "user", null, "b1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm1, data);
CapacityScheduler cs = (CapacityScheduler) rm1.getResourceScheduler();
RMNode rmNode1 = rm1.getRMContext().getRMNodes().get(nm1.getNodeId());
@@ -1259,7 +1469,15 @@ public class TestNodeLabelContainerAllocation {
MockNM nm2 = rm1.registerNode("h2:1234", 10 * GB); // label = <empty>
// app1 -> a
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm2);
// app1 asks for 10 partition= containers
@@ -1447,7 +1665,15 @@ public class TestNodeLabelContainerAllocation {
checkQueueUsedCapacity("root", cs, "", 0f, 0f);
// app1 -> a1
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "a1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2);
// app1 asks for 1 partition= containers
@@ -1498,7 +1724,15 @@ public class TestNodeLabelContainerAllocation {
// submit an app to a2, uses 1 NON_PARTITIONED container and 1 PARTITIONED
// container
// app2 -> a2
- RMApp app2 = rm.submitApp(1 * GB, "app", "user", null, "a2");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a2")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm2);
// app1 asks for 1 partition= containers
@@ -1655,19 +1889,51 @@ public class TestNodeLabelContainerAllocation {
MockNM nm2 = rm.registerNode("h2:1234", 10 * GB); // label = <empty>
// app1 -> a
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data3 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data3);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2);
// app2 -> b
- RMApp app2 = rm.submitApp(1 * GB, "app", "user", null, "b");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data2);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm2);
// app3 -> c
- RMApp app3 = rm.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm, data1);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm, nm2);
// app4 -> d
- RMApp app4 = rm.submitApp(1 * GB, "app", "user", null, "d");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("d")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app4 = MockRMAppSubmitter.submit(rm, data);
MockAM am4 = MockRM.launchAndRegisterAM(app4, rm, nm2);
// Test case 1
@@ -1817,11 +2083,27 @@ public class TestNodeLabelContainerAllocation {
MockNM nm1 = rm.registerNode("h1:1234", 10 * GB); // label = x
// app1 -> a
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "a", "x");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withAmLabel("x")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
// app2 -> b
- RMApp app2 = rm.submitApp(1 * GB, "app", "user", null, "b", "x");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b")
+ .withAmLabel("x")
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm1);
// Both a/b has used_capacity(x) = 0, when doing exclusive allocation, a
@@ -1909,7 +2191,15 @@ public class TestNodeLabelContainerAllocation {
nm1.registerNode();
// Launch app1 in a1, resource usage is 1GB (am) + 4GB * 2 = 9GB
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "a1", "x");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
am1.allocate("*", 4 * GB, 2, new ArrayList<ContainerId>(), "x");
doNMHeartbeat(rm, nm1.getNodeId(), 10);
@@ -1917,7 +2207,15 @@ public class TestNodeLabelContainerAllocation {
cs.getApplicationAttempt(am1.getApplicationAttemptId()));
// Try to launch app2 in a2, asked 2GB, should success
- RMApp app2 = rm.submitApp(2 * GB, "app", "user", null, "a2", "x");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(2 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a2")
+ .withAmLabel("x")
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm1);
// am2 asks more resources, cannot success because current used = 9G (app1)
@@ -1998,7 +2296,15 @@ public class TestNodeLabelContainerAllocation {
assertEquals(0 * GB, leafQueueB.getMetrics().getAllocatedMB());
// app1 -> a
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a", "x");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withAmLabel("x")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// app1 asks for 5 partition=x containers
@@ -2103,7 +2409,15 @@ public class TestNodeLabelContainerAllocation {
MockNM nm1 = rm1.registerNode("h1:1234", 10 * GB); // label = x
MockNM nm2 = rm1.registerNode("h2:1234", 10 * GB); // label = <no_label>
// app1 -> a
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm2);
// app1 asks for 3 partition= containers
@@ -2212,7 +2526,14 @@ public class TestNodeLabelContainerAllocation {
assertEquals(0 * GB, leafQueueA.getMetrics().getAllocatedMB());
// app1 -> a
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a", "x");
+ RMApp app1 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withAmLabel("x")
+ .build());
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// app1 asks for 5 partition=x containers
@@ -2245,7 +2566,14 @@ public class TestNodeLabelContainerAllocation {
assertEquals(0 * GB, leafQueueA.getMetrics().getAllocatedMB());
// app2 -> a
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "a", "");
+ RMApp app2 = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withAmLabel("")
+ .build());
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm2);
// app2 asks for 5 partition= containers
@@ -2370,7 +2698,15 @@ public class TestNodeLabelContainerAllocation {
rm1.start();
MockNM nm1 = rm1.registerNode("h1:1234", 20 * GB); // label = x
// app1 -> a1
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "a1", "x");
+ MockRMAppSubmissionData data3 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data3);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// app1 asks for 6 partition=x containers
@@ -2390,7 +2726,15 @@ public class TestNodeLabelContainerAllocation {
// Try to launch app2 in a2, asked 2GB, should success
// app2 -> a2
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "a2", "x");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a2")
+ .withAmLabel("x")
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm1);
// app2 asks for 4 partition=x containers
@@ -2414,7 +2758,15 @@ public class TestNodeLabelContainerAllocation {
// Try to launch app3 in a2, asked 6GB, should fail
// app3 -> a2
- RMApp app3 = rm1.submitApp(1 * GB, "app", "user", null, "a2", "x");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a2")
+ .withAmLabel("x")
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, nm1);
am3.allocate("*", 1 * GB, 6, new ArrayList<ContainerId>(), "x");
@@ -2434,7 +2786,15 @@ public class TestNodeLabelContainerAllocation {
rm1.waitForAppRemovedFromScheduler(app1.getApplicationId());
// app4 -> a1, try to allocate more than 6GB resource, should fail
- RMApp app4 = rm1.submitApp(1 * GB, "app", "user", null, "a1", "x");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withAmLabel("x")
+ .build();
+ RMApp app4 = MockRMAppSubmitter.submit(rm1, data);
MockAM am4 = MockRM.launchAndRegisterAM(app4, rm1, nm1);
// app3 asks for 7 partition=x containers
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestQueueState.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestQueueState.java
index c9980ce..45aaedd 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestQueueState.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestQueueState.java
@@ -33,6 +33,8 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.recovery.MemoryRMStateStore;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -226,7 +228,15 @@ public class TestQueueState {
MockNM nm = rm.registerNode("h1:1234", 204800);
// submit an app, AM is running on nm1
- RMApp app = rm.submitApp(1024, "appname", "appuser", null, Q2);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1024, rm)
+ .withAppName("appname")
+ .withUser("appuser")
+ .withAcls(null)
+ .withQueue(Q2)
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm, data);
MockRM.launchAM(app, rm, nm);
rm.waitForState(app.getApplicationId(), RMAppState.ACCEPTED);
// update queue state to STOPPED
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestSchedulingRequestContainerAllocation.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestSchedulingRequestContainerAllocation.java
index b959a76..4615e51 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestSchedulingRequestContainerAllocation.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestSchedulingRequestContainerAllocation.java
@@ -24,8 +24,11 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.api.protocolrecords.AllocateRequest;
import org.apache.hadoop.yarn.api.records.ExecutionType;
import org.apache.hadoop.yarn.api.records.ExecutionTypeRequest;
+import org.apache.hadoop.yarn.api.records.ResourceRequest;
import org.apache.hadoop.yarn.api.records.SchedulingRequest;
import org.apache.hadoop.yarn.api.resource.PlacementConstraint;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.constraint.TargetApplicationsNamespace;
import org.apache.hadoop.yarn.api.records.Priority;
import org.apache.hadoop.yarn.api.records.Resource;
@@ -56,6 +59,7 @@ import org.junit.runners.Parameterized.Parameters;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
@@ -106,6 +110,22 @@ public class TestSchedulingRequestContainerAllocation {
mgr.init(conf);
}
+ private RMApp submitApp(MockRM rm, int memory, Set<String> appTags)
+ throws Exception {
+ Resource resource = Resource.newInstance(memory, 0);
+ ResourceRequest amResourceRequest = ResourceRequest.newInstance(
+ Priority.newInstance(0), ResourceRequest.ANY, resource, 1);
+ List<ResourceRequest> amResourceRequests =
+ Collections.singletonList(amResourceRequest);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithResource(resource, rm)
+ .withAmLabel(null)
+ .withAmResourceRequests(amResourceRequests)
+ .withApplicationTags(appTags)
+ .build();
+ return MockRMAppSubmitter.submit(rm, data);
+ }
+
@Test(timeout = 30000L)
public void testIntraAppAntiAffinity() throws Exception {
Configuration csConf = TestUtils.getConfigurationWithMultipleQueues(conf);
@@ -130,7 +150,15 @@ public class TestSchedulingRequestContainerAllocation {
}
// app1 -> c
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nms[0]);
// app1 asks for 10 anti-affinity containers for the same app. It should
@@ -196,7 +224,15 @@ public class TestSchedulingRequestContainerAllocation {
}
// app1 -> c
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nms[0]);
// app1 asks for 2 anti-affinity containers for the same app.
@@ -266,7 +302,15 @@ public class TestSchedulingRequestContainerAllocation {
}
// app1 -> c
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nms[0]);
// app1 asks for 3 anti-affinity containers for the same app. It should
@@ -287,7 +331,15 @@ public class TestSchedulingRequestContainerAllocation {
+ rmNodes[2].getAllocationTagsWithCount().get("mapper"));
// app2 -> c
- RMApp app2 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nms[0]);
// App2 asks for 3 containers that anti-affinity with any mapper,
@@ -322,7 +374,15 @@ public class TestSchedulingRequestContainerAllocation {
}));
// app3 -> c
- RMApp app3 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, nms[0]);
// App3 asks for 3 containers that anti-affinity with any mapper.
@@ -368,7 +428,15 @@ public class TestSchedulingRequestContainerAllocation {
}
// app1 -> c
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nms[0]);
// app1 asks for 2 anti-affinity containers for the same app.
@@ -410,7 +478,15 @@ public class TestSchedulingRequestContainerAllocation {
}
// app1 -> c
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nms[0]);
CapacityScheduler cs = (CapacityScheduler) rm1.getResourceScheduler();
@@ -470,7 +546,14 @@ public class TestSchedulingRequestContainerAllocation {
rmNodes[i] = rm1.getRMContext().getRMNodes().get(nms[i].getNodeId());
}
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData submissionData =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, submissionData);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nms[0]);
// Constraint with Invalid Allocation Tag Namespace
@@ -581,7 +664,7 @@ public class TestSchedulingRequestContainerAllocation {
MockNM nm4 = rm.registerNode("192.168.0.4:1234", 100*GB, 100);
MockNM nm5 = rm.registerNode("192.168.0.5:1234", 100*GB, 100);
- RMApp app1 = rm.submitApp(1*GB, ImmutableSet.of("hbase"));
+ RMApp app1 = submitApp(rm, 1*GB, ImmutableSet.of("hbase"));
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
// App1 (hbase)
@@ -620,7 +703,7 @@ public class TestSchedulingRequestContainerAllocation {
// App2 (web-server)
// Web server instance has 2 instance and non of them can be co-allocated
// with hbase-master.
- RMApp app2 = rm.submitApp(1*GB, ImmutableSet.of("web-server"));
+ RMApp app2 = submitApp(rm, 1*GB, ImmutableSet.of("web-server"));
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm2);
// App2 (web-server)
@@ -657,7 +740,7 @@ public class TestSchedulingRequestContainerAllocation {
// App3 has multiple instances that must be co-allocated
// with app2 server instance, and each node cannot have more than
// 3 instances.
- RMApp app3 = rm.submitApp(1*GB, ImmutableSet.of("ws-servants"));
+ RMApp app3 = submitApp(rm, 1*GB, ImmutableSet.of("ws-servants"));
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm, nm3);
@@ -709,7 +792,7 @@ public class TestSchedulingRequestContainerAllocation {
MockNM nm4 = rm.registerNode("192.168.0.4:1234", 10*GB, 10);
MockNM nm5 = rm.registerNode("192.168.0.5:1234", 10*GB, 10);
- RMApp app1 = rm.submitApp(1*GB, ImmutableSet.of("server1"));
+ RMApp app1 = submitApp(rm, 1*GB, ImmutableSet.of("server1"));
// Allocate AM container on nm1
doNodeHeartbeat(nm1);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
@@ -736,7 +819,7 @@ public class TestSchedulingRequestContainerAllocation {
// App1 uses ports: 6000
String[] server2Ports = new String[] {"port_6000"};
- RMApp app2 = rm.submitApp(1*GB, ImmutableSet.of("server2"));
+ RMApp app2 = submitApp(rm, 1*GB, ImmutableSet.of("server2"));
// Allocate AM container on nm1
doNodeHeartbeat(nm2);
RMAppAttempt app2attempt1 = app2.getCurrentAppAttempt();
@@ -792,7 +875,7 @@ public class TestSchedulingRequestContainerAllocation {
// App1 ~ app5 tag "former5"
// App6 ~ app10 tag "latter5"
String applicationTag = i<5 ? "former5" : "latter5";
- RMApp app = rm.submitApp(1*GB, ImmutableSet.of(applicationTag));
+ RMApp app = submitApp(rm, 1*GB, ImmutableSet.of(applicationTag));
// Allocate AM container on nm1
doNodeHeartbeat(nm1, nm2, nm3, nm4, nm5);
RMAppAttempt attempt = app.getCurrentAppAttempt();
@@ -819,7 +902,7 @@ public class TestSchedulingRequestContainerAllocation {
// *** app-id
// Submit another app, use app-id constraint against app5
- RMApp app1 = rm.submitApp(1*GB, ImmutableSet.of("xyz"));
+ RMApp app1 = submitApp(rm, 1*GB, ImmutableSet.of("xyz"));
// Allocate AM container on nm1
doNodeHeartbeat(nm1);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
@@ -849,7 +932,7 @@ public class TestSchedulingRequestContainerAllocation {
}
// *** app-tag
- RMApp app2 = rm.submitApp(1*GB);
+ RMApp app2 = MockRMAppSubmitter.submitWithMemory(1 * GB, rm);
// Allocate AM container on nm1
doNodeHeartbeat(nm2);
RMAppAttempt app2attempt1 = app2.getCurrentAppAttempt();
@@ -874,7 +957,7 @@ public class TestSchedulingRequestContainerAllocation {
}
// *** not-self
- RMApp app3 = rm.submitApp(1*GB);
+ RMApp app3 = MockRMAppSubmitter.submitWithMemory(1 * GB, rm);
// Allocate AM container on nm1
doNodeHeartbeat(nm3);
RMAppAttempt app3attempt1 = app3.getCurrentAppAttempt();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestSchedulingRequestContainerAllocationAsync.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestSchedulingRequestContainerAllocationAsync.java
index 9ce03c9..785d244 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestSchedulingRequestContainerAllocationAsync.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestSchedulingRequestContainerAllocationAsync.java
@@ -28,6 +28,8 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -111,7 +113,15 @@ public class TestSchedulingRequestContainerAllocationAsync {
}
// app1 -> c
- RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "c");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nms[0]);
// app1 asks for 1000 anti-affinity containers for the same app. It should
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestWorkPreservingRMRestartForNodeLabel.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestWorkPreservingRMRestartForNodeLabel.java
index 36ee68e..8c2856d 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestWorkPreservingRMRestartForNodeLabel.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestWorkPreservingRMRestartForNodeLabel.java
@@ -33,6 +33,8 @@ import org.apache.hadoop.yarn.server.api.protocolrecords.NMContainerStatus;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.TestRMRestart;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
@@ -154,7 +156,15 @@ public class TestWorkPreservingRMRestartForNodeLabel {
// launch an app to queue a1 (label = x), and check all container will
// be allocated in h1
- RMApp app1 = rm1.submitApp(200, "app", "user", null, "a1");
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm1, data2);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm1);
// request a container.
@@ -170,7 +180,15 @@ public class TestWorkPreservingRMRestartForNodeLabel {
// launch an app to queue b1 (label = y), and check all container will
// be allocated in h2
- RMApp app2 = rm1.submitApp(200, "app", "user", null, "b1");
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("b1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm1, data1);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm1, nm2);
// request a container.
@@ -185,7 +203,15 @@ public class TestWorkPreservingRMRestartForNodeLabel {
// launch an app to queue c1 (label = ""), and check all container will
// be allocated in h3
- RMApp app3 = rm1.submitApp(200, "app", "user", null, "c1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("c1")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm1, data);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm1, nm3);
// request a container.
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/constraint/TestPlacementProcessor.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/constraint/TestPlacementProcessor.java
index 76df057..5d525c8 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/constraint/TestPlacementProcessor.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/constraint/TestPlacementProcessor.java
@@ -38,6 +38,8 @@ import org.apache.hadoop.yarn.event.DrainDispatcher;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.QueueMetrics;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler;
@@ -127,7 +129,15 @@ public class TestPlacementProcessor {
nm3.registerNode();
nm4.registerNode();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// Containers with allocationTag 'foo' are restricted to 1 per NODE
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2,
Collections.singletonMap(Collections.singleton("foo"),
@@ -176,7 +186,15 @@ public class TestPlacementProcessor {
nm4.registerNode();
nm5.registerNode();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// Containers with allocationTag 'foo' are restricted to 1 per NODE
Map<Set<String>, PlacementConstraint> pcMap = new HashMap<>();
pcMap.put(Collections.singleton("foo"),
@@ -227,7 +245,15 @@ public class TestPlacementProcessor {
nm3.registerNode();
nm4.registerNode();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// Containers with allocationTag 'foo' should not exceed 4 per NODE
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2,
Collections.singletonMap(Collections.singleton("foo"),
@@ -280,7 +306,15 @@ public class TestPlacementProcessor {
nm3.registerNode();
nm4.registerNode();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// Containers with allocationTag 'foo' should be placed where
// containers with allocationTag 'bar' are already running
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2,
@@ -328,7 +362,15 @@ public class TestPlacementProcessor {
nm3.registerNode();
nm4.registerNode();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
Map<Set<String>, PlacementConstraint> constraintMap = new HashMap<>();
// Containers with allocationTag 'bar' should not exceed 1 per NODE
constraintMap.put(Collections.singleton("bar"),
@@ -399,7 +441,15 @@ public class TestPlacementProcessor {
nm3.registerNode();
nm4.registerNode();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "a");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("a")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// Containers with allocationTag 'foo' are restricted to 1 per NODE
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2,
Collections.singletonMap(
@@ -470,7 +520,15 @@ public class TestPlacementProcessor {
nm3.registerNode();
nm4.registerNode();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// Containers with allocationTag 'foo' are restricted to 1 per NODE
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2,
Collections.singletonMap(
@@ -556,7 +614,15 @@ public class TestPlacementProcessor {
nm4.registerNode();
// Do not register nm5 yet..
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// Containers with allocationTag 'foo' are restricted to 1 per NODE
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2,
Collections.singletonMap(
@@ -628,7 +694,15 @@ public class TestPlacementProcessor {
nm3.registerNode();
nm4.registerNode();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// Containers with allocationTag 'foo' are restricted to 1 per NODE
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm2,
Collections.singletonMap(
@@ -703,7 +777,15 @@ public class TestPlacementProcessor {
nm3.registerNode();
nm4.registerNode();
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// Register app1 with following constraints
// 1) foo anti-affinity with foo on node
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestApplicationMasterServiceWithFS.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestApplicationMasterServiceWithFS.java
index d7ec162..9fbdf89 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestApplicationMasterServiceWithFS.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestApplicationMasterServiceWithFS.java
@@ -33,6 +33,8 @@ import org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttempt;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler;
@@ -97,7 +99,11 @@ public class TestApplicationMasterServiceWithFS {
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 6 * GB);
// Submit an application
- RMApp app1 = rm.submitApp(2 * GB, "queueA");
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithMemory(2 * GB, rm)
+ .withQueue("queueA")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// kick the scheduling
nm1.nodeHeartbeat(true);
@@ -139,7 +145,9 @@ public class TestApplicationMasterServiceWithFS {
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 6 * GB);
// Submit an application
- RMApp app1 = rm.submitApp(2 * GB, queueName);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithMemory(2 * GB, rm).withQueue(queueName).build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
// kick the scheduling
nm1.nodeHeartbeat(true);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestFairScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestFairScheduler.java
index d9f29f1..4f51120 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestFairScheduler.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestFairScheduler.java
@@ -55,6 +55,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNodes;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.NodeManager;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.RMContextImpl;
@@ -5217,7 +5219,15 @@ public class TestFairScheduler extends FairSchedulerTestBase {
rm2.getAdminService().transitionToActive(requestInfo);
// 4. submit a app to the new added queue "test_queue"
- RMApp app = rm2.submitApp(200, "test_app", "user", null, "test_queue");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm2)
+ .withAppName("test_app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("test_queue")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app = MockRMAppSubmitter.submit(rm2, data);
RMAppAttempt attempt0 = app.getCurrentAppAttempt();
nm.nodeHeartbeat(true);
MockAM am0 = rm2.sendAMLaunched(attempt0.getAppAttemptId());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/TestFifoScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/TestFifoScheduler.java
index 33b67a7..01fb6a7 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/TestFifoScheduler.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/TestFifoScheduler.java
@@ -69,6 +69,7 @@ import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNodes;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.NodeManager;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.RMContextImpl;
@@ -662,7 +663,7 @@ public class TestFifoScheduler {
rm.start();
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 6 * GB);
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
// kick the scheduling, 2 GB given to AM1, remaining 4GB on nm1
nm1.nodeHeartbeat(true);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
@@ -693,7 +694,7 @@ public class TestFifoScheduler {
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 6 * GB);
MockNM nm2 = rm.registerNode("127.0.0.2:5678", 4 * GB);
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
// kick the scheduling, 2 GB given to AM1, remaining 4GB on nm1
nm1.nodeHeartbeat(true);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
@@ -703,7 +704,7 @@ public class TestFifoScheduler {
rm.getResourceScheduler().getNodeReport(nm1.getNodeId());
Assert.assertEquals(2 * GB, report_nm1.getUsedResource().getMemorySize());
- RMApp app2 = rm.submitApp(2048);
+ RMApp app2 = MockRMAppSubmitter.submitWithMemory(2048, rm);
// kick the scheduling, 2GB given to AM, remaining 2 GB on nm2
nm2.nodeHeartbeat(true);
RMAppAttempt attempt2 = app2.getCurrentAppAttempt();
@@ -813,7 +814,7 @@ public class TestFifoScheduler {
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 6 * GB);
// Submit an application
- RMApp app1 = rm.submitApp(testAlloc);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(testAlloc, rm);
// kick the scheduling
nm1.nodeHeartbeat(true);
@@ -1108,7 +1109,7 @@ public class TestFifoScheduler {
MockNM nm1 = rm.registerNode("127.0.0.1:1234", 4 * GB);
- RMApp app1 = rm.submitApp(2048);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(2048, rm);
// kick the scheduling, 2 GB given to AM1, remaining 2GB on nm1
nm1.nodeHeartbeat(true);
RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/policy/TestFairOrderingPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/policy/TestFairOrderingPolicy.java
index e023e01..eab4eb7 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/policy/TestFairOrderingPolicy.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/policy/TestFairOrderingPolicy.java
@@ -23,6 +23,8 @@ import java.util.*;
import org.apache.hadoop.yarn.api.records.NodeId;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.NodeUpdateSchedulerEvent;
@@ -178,10 +180,42 @@ public class TestFairOrderingPolicy {
rm.registerNode("h1:1234", 10 * GB);
// Submit 4 apps
- rm.submitApp(1 * GB, "app", "user", null, "default");
- rm.submitApp(1 * GB, "app", "user", null, "default");
- rm.submitApp(1 * GB, "app", "user", null, "default");
- rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data3 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ MockRMAppSubmitter.submit(rm, data3);
+ MockRMAppSubmissionData data2 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ MockRMAppSubmitter.submit(rm, data2);
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ MockRMAppSubmitter.submit(rm, data1);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ MockRMAppSubmitter.submit(rm, data);
Assert.assertEquals(1, lq.getNumActiveApplications());
Assert.assertEquals(3, lq.getNumPendingApplications());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestAMRMTokens.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestAMRMTokens.java
index 53221d8..6a44422 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestAMRMTokens.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestAMRMTokens.java
@@ -56,6 +56,7 @@ import org.apache.hadoop.yarn.security.AMRMTokenIdentifier;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.RMSecretManagerService;
import org.apache.hadoop.yarn.server.resourcemanager.TestAMAuthorization.MockRMWithAMS;
@@ -129,7 +130,7 @@ public class TestAMRMTokens {
try {
MockNM nm1 = rm.registerNode("localhost:1234", 5120);
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
nm1.nodeHeartbeat(true);
@@ -250,7 +251,7 @@ public class TestAMRMTokens {
try {
MockNM nm1 = rm.registerNode("localhost:1234", 5120);
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
nm1.nodeHeartbeat(true);
@@ -380,7 +381,7 @@ public class TestAMRMTokens {
};
rm.start();
MockNM nm = rm.registerNode("127.0.0.1:1234", 8000);
- RMApp app = rm.submitApp(200);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(200, rm);
MockAM am = MockRM.launchAndRegisterAM(app, rm, nm);
AMRMTokenSecretManager spySecretMgr = spySecretMgrRef.get();
// Do allocate. Should not update AMRMToken
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestClientToAMTokens.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestClientToAMTokens.java
index 7c77de4..1df6296 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestClientToAMTokens.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestClientToAMTokens.java
@@ -58,6 +58,7 @@ import org.apache.hadoop.yarn.server.resourcemanager.ClientRMService;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.MockRMWithCustomAMLauncher;
import org.apache.hadoop.yarn.server.resourcemanager.ParameterizedSchedulerTestBase;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -216,7 +217,7 @@ public class TestClientToAMTokens extends ParameterizedSchedulerTestBase {
rm.start();
// Submit an app
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
// Set up a node.
MockNM nm1 = rm.registerNode("localhost:1234", 3072);
@@ -446,7 +447,7 @@ public class TestClientToAMTokens extends ParameterizedSchedulerTestBase {
rm.start();
// Submit an app
- RMApp app = rm.submitApp(1024);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(1024, rm);
// Set up a node.
MockNM nm1 = rm.registerNode("localhost:1234", 3072);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestDelegationTokenRenewer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestDelegationTokenRenewer.java
index ee104b4..5f6d440 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestDelegationTokenRenewer.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/security/TestDelegationTokenRenewer.java
@@ -88,6 +88,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.ClientRMService;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
import org.apache.hadoop.yarn.server.resourcemanager.TestRMRestart.TestSecurityMockRM;
import org.apache.hadoop.yarn.server.resourcemanager.recovery.MemoryRMStateStore;
@@ -356,6 +358,35 @@ public class TestDelegationTokenRenewer {
token1.setService(new Text("localhost:0"));
return token1;
}
+
+ private RMApp submitApp(MockRM rm, Credentials cred, ByteBuffer tokensConf)
+ throws Exception {
+ int maxAttempts = rm.getConfig().getInt(
+ YarnConfiguration.RM_AM_MAX_ATTEMPTS,
+ YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder.create()
+ .withResource(Resource.newInstance(200, 1))
+ .withAppName("app1")
+ .withUser("user")
+ .withAcls(null)
+ .withUnmanagedAM(false)
+ .withQueue(null)
+ .withMaxAppAttempts(maxAttempts)
+ .withCredentials(cred)
+ .withAppType(null)
+ .withWaitForAppAcceptedState(true)
+ .withKeepContainers(false)
+ .withApplicationId(null)
+ .withAttemptFailuresValidityInterval(0)
+ .withLogAggregationContext(null)
+ .withCancelTokensWhenComplete(true)
+ .withAppPriority(Priority.newInstance(0))
+ .withAmLabel(null)
+ .withApplicationTimeouts(null)
+ .withTokensConf(tokensConf)
+ .build();
+ return MockRMAppSubmitter.submit(rm, data);
+ }
/**
@@ -948,9 +979,16 @@ public class TestDelegationTokenRenewer {
credentials.addToken(userText1, token1);
RMApp app =
- rm.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", 1,
- credentials);
+ MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(1)
+ .withCredentials(credentials)
+ .build());
// wait for the initial expiring hdfs token to be removed from allTokens
GenericTestUtils.waitFor(new Supplier<Boolean>() {
@@ -1029,9 +1067,16 @@ public class TestDelegationTokenRenewer {
MockRM rm1 = new TestSecurityMockRM(yarnConf);
MemoryRMStateStore memStore = (MemoryRMStateStore) rm1.getRMStateStore();
rm1.start();
- RMApp app = rm1.submitApp(200, "name", "user",
- new HashMap<ApplicationAccessType, String>(), false, "default", 1,
- credentials);
+ RMApp app = MockRMAppSubmitter.submit(rm1,
+ MockRMAppSubmissionData.Builder.createWithMemory(200, rm1)
+ .withAppName("name")
+ .withUser("user")
+ .withAcls(new HashMap<ApplicationAccessType, String>())
+ .withUnmanagedAM(false)
+ .withQueue("default")
+ .withMaxAppAttempts(1)
+ .withCredentials(credentials)
+ .build());
// create token2
Text userText2 = new Text("user1");
@@ -1127,7 +1172,7 @@ public class TestDelegationTokenRenewer {
rm.start();
// submit an app without delegationToken
- RMApp app = rm.submitApp(200);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(200, rm);
// wait for the new retrieved hdfs token.
GenericTestUtils.waitFor(new Supplier<Boolean>() {
@@ -1184,8 +1229,15 @@ public class TestDelegationTokenRenewer {
// submit app1 with a token, set cancelTokenWhenComplete to false;
Resource resource = Records.newRecord(Resource.class);
resource.setMemorySize(200);
- RMApp app1 = rm.submitApp(resource, "name", "user", null, false, null, 2,
- credentials, null, true, false, false, null, 0, null, false, null);
+ MockRMAppSubmissionData data1 = MockRMAppSubmissionData.Builder
+ .createWithResource(resource, rm)
+ .withAppName("name")
+ .withUser("user")
+ .withMaxAppAttempts(2)
+ .withCredentials(credentials)
+ .withCancelTokensWhenComplete(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data1);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
rm.waitForState(app1.getApplicationId(), RMAppState.RUNNING);
DelegationTokenRenewer renewer =
@@ -1194,8 +1246,15 @@ public class TestDelegationTokenRenewer {
Assert.assertNotNull(dttr);
// submit app2 with the same token, set cancelTokenWhenComplete to true;
- RMApp app2 = rm.submitApp(resource, "name", "user", null, false, null, 2,
- credentials, null, true, false, false, null, 0, null, true, null);
+ MockRMAppSubmissionData data = MockRMAppSubmissionData.Builder
+ .createWithResource(resource, rm)
+ .withAppName("name")
+ .withUser("user")
+ .withMaxAppAttempts(2)
+ .withCredentials(credentials)
+ .withCancelTokensWhenComplete(true)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm1);
rm.waitForState(app2.getApplicationId(), RMAppState.RUNNING);
finishAMAndWaitForComplete(app2, rm, nm1, am2, dttr);
@@ -1250,17 +1309,29 @@ public class TestDelegationTokenRenewer {
Resource resource = Records.newRecord(Resource.class);
resource.setMemorySize(200);
+ MockRMAppSubmissionData data2 = MockRMAppSubmissionData.Builder
+ .createWithResource(resource, rm).withAppName("name")
+ .withUser("user")
+ .withMaxAppAttempts(2)
+ .withCredentials(credentials)
+ .build();
RMApp app1 =
- rm.submitApp(resource, "name", "user", null, false, null, 2, credentials,
- null, true, false, false, null, 0, null, true, null);
+ MockRMAppSubmitter.submit(rm, data2);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
rm.waitForState(app1.getApplicationId(), RMAppState.RUNNING);
DelegationTokenToRenew dttr = renewer.getAllTokens().get(token1);
Assert.assertNotNull(dttr);
Assert.assertTrue(dttr.referringAppIds.contains(app1.getApplicationId()));
- RMApp app2 = rm.submitApp(resource, "name", "user", null, false, null, 2,
- credentials, null, true, false, false, null, 0, null, true, null);
+ MockRMAppSubmissionData data1 =
+ MockRMAppSubmissionData.Builder.createWithResource(resource, rm)
+ .withResource(resource)
+ .withAppName("name")
+ .withUser("user")
+ .withMaxAppAttempts(2)
+ .withCredentials(credentials)
+ .build();
+ RMApp app2 = MockRMAppSubmitter.submit(rm, data1);
MockAM am2 = MockRM.launchAndRegisterAM(app2, rm, nm1);
rm.waitForState(app2.getApplicationId(), RMAppState.RUNNING);
Assert.assertTrue(renewer.getAllTokens().containsKey(token1));
@@ -1276,8 +1347,15 @@ public class TestDelegationTokenRenewer {
Assert.assertFalse(dttr.isTimerCancelled());
Assert.assertFalse(Renewer.cancelled);
- RMApp app3 = rm.submitApp(resource, "name", "user", null, false, null, 2,
- credentials, null, true, false, false, null, 0, null, true, null);
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithResource(resource, rm)
+ .withResource(resource)
+ .withAppName("name")
+ .withUser("user")
+ .withMaxAppAttempts(2)
+ .withCredentials(credentials)
+ .build();
+ RMApp app3 = MockRMAppSubmitter.submit(rm, data);
MockAM am3 = MockRM.launchAndRegisterAM(app3, rm, nm1);
rm.waitForState(app3.getApplicationId(), RMAppState.RUNNING);
Assert.assertTrue(renewer.getAllTokens().containsKey(token1));
@@ -1370,7 +1448,7 @@ public class TestDelegationTokenRenewer {
final int confSize = appConf.size();
// submit app
- RMApp app = rm.submitApp(credentials, tokenConf);
+ RMApp app = submitApp(rm, credentials, tokenConf);
GenericTestUtils.waitFor(new Supplier<Boolean>() {
public Boolean get() {
@@ -1425,7 +1503,7 @@ public class TestDelegationTokenRenewer {
ByteBuffer tokenConf = ByteBuffer.wrap(dob.getData(), 0, dob.getLength());
try {
- rm.submitApp(credentials, tokenConf);
+ submitApp(rm, credentials, tokenConf);
Assert.fail();
} catch (Exception e) {
e.printStackTrace();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/volume/csi/TestVolumeProcessor.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/volume/csi/TestVolumeProcessor.java
index 370c527..531d543 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/volume/csi/TestVolumeProcessor.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/volume/csi/TestVolumeProcessor.java
@@ -36,6 +36,8 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -146,7 +148,15 @@ public class TestVolumeProcessor {
@Test (timeout = 10000L)
public void testVolumeProvisioning() throws Exception {
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, mockNMS[0]);
Resource resource = Resource.newInstance(1024, 1);
ResourceInformation volumeResource = ResourceInformation
@@ -199,7 +209,15 @@ public class TestVolumeProcessor {
@Test (timeout = 30000L)
public void testInvalidRequest() throws Exception {
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, mockNMS[0]);
Resource resource = Resource.newInstance(1024, 1);
ResourceInformation volumeResource = ResourceInformation
@@ -233,7 +251,15 @@ public class TestVolumeProcessor {
@Test (timeout = 30000L)
public void testProvisioningFailures() throws Exception {
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, mockNMS[0]);
CsiAdaptorProtocol mockedClient = Mockito
@@ -276,7 +302,13 @@ public class TestVolumeProcessor {
@Test (timeout = 10000L)
public void testVolumeResourceAllocate() throws Exception {
- RMApp app1 = rm.submitApp(1 * GB, "app", "user", null, "default");
+ RMApp app1 = MockRMAppSubmitter.submit(rm,
+ MockRMAppSubmissionData.Builder.createWithMemory(1 * GB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .build());
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, mockNMS[0]);
Resource resource = Resource.newInstance(1024, 1);
ResourceInformation volumeResource = ResourceInformation
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServiceAppsNodelabel.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServiceAppsNodelabel.java
index 3815fb9..fe154ac 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServiceAppsNodelabel.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServiceAppsNodelabel.java
@@ -35,6 +35,8 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager;
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -145,7 +147,7 @@ public class TestRMWebServiceAppsNodelabel extends JerseyTestBase {
rm.start();
MockNM amNodeManager = rm.registerNode("127.0.0.1:1234", 2048);
amNodeManager.nodeHeartbeat(true);
- RMApp killedApp = rm.submitApp(AM_CONTAINER_MB);
+ RMApp killedApp = MockRMAppSubmitter.submitWithMemory(AM_CONTAINER_MB, rm);
rm.killApp(killedApp.getApplicationId());
WebResource r = resource();
ClientResponse response =
@@ -173,7 +175,15 @@ public class TestRMWebServiceAppsNodelabel extends JerseyTestBase {
nodeLabelManager.addLabelsToNode(
ImmutableMap.of(NodeId.newInstance("h2", 1235), toSet("X")));
- RMApp app1 = rm.submitApp(AM_CONTAINER_MB, "app", "user", null, "default");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(AM_CONTAINER_MB, rm)
+ .withAppName("app")
+ .withUser("user")
+ .withAcls(null)
+ .withQueue("default")
+ .withUnmanagedAM(false)
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am1 = MockRM.launchAndRegisterAM(app1, rm, nm1);
nm1.nodeHeartbeat(true);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppAttempts.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppAttempts.java
index 0793699..ee6d018 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppAttempts.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppAttempts.java
@@ -30,6 +30,8 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.resourcemanager.MockAM;
import org.apache.hadoop.yarn.server.resourcemanager.MockNM;
import org.apache.hadoop.yarn.server.resourcemanager.MockRM;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmissionData;
+import org.apache.hadoop.yarn.server.resourcemanager.MockRMAppSubmitter;
import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppState;
@@ -110,7 +112,12 @@ public class TestRMWebServicesAppAttempts extends JerseyTestBase {
public void testAppAttempts() throws Exception {
rm.start();
MockNM amNodeManager = rm.registerNode("127.0.0.1:1234", 2048);
- RMApp app1 = rm.submitApp(CONTAINER_MB, "testwordcount", "user1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(CONTAINER_MB, rm)
+ .withAppName("testwordcount")
+ .withUser("user1")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
amNodeManager.nodeHeartbeat(true);
testAppAttemptsHelper(app1.getApplicationId().toString(), app1,
MediaType.APPLICATION_JSON);
@@ -121,7 +128,12 @@ public class TestRMWebServicesAppAttempts extends JerseyTestBase {
public void testMultipleAppAttempts() throws Exception {
rm.start();
MockNM amNodeManager = rm.registerNode("127.0.0.1:1234", 8192);
- RMApp app1 = rm.submitApp(CONTAINER_MB, "testwordcount", "user1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(CONTAINER_MB, rm)
+ .withAppName("testwordcount")
+ .withUser("user1")
+ .build();
+ RMApp app1 = MockRMAppSubmitter.submit(rm, data);
MockAM am = MockRM.launchAndRegisterAM(app1, rm, amNodeManager);
int maxAppAttempts = rm.getConfig().getInt(
YarnConfiguration.RM_AM_MAX_ATTEMPTS,
@@ -153,7 +165,7 @@ public class TestRMWebServicesAppAttempts extends JerseyTestBase {
public void testAppAttemptsSlash() throws Exception {
rm.start();
MockNM amNodeManager = rm.registerNode("127.0.0.1:1234", 2048);
- RMApp app1 = rm.submitApp(CONTAINER_MB);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(CONTAINER_MB, rm);
amNodeManager.nodeHeartbeat(true);
testAppAttemptsHelper(app1.getApplicationId().toString() + "/", app1,
MediaType.APPLICATION_JSON);
@@ -164,7 +176,7 @@ public class TestRMWebServicesAppAttempts extends JerseyTestBase {
public void testAppAttemptsDefault() throws Exception {
rm.start();
MockNM amNodeManager = rm.registerNode("127.0.0.1:1234", 2048);
- RMApp app1 = rm.submitApp(CONTAINER_MB);
+ RMApp app1 = MockRMAppSubmitter.submitWithMemory(CONTAINER_MB, rm);
amNodeManager.nodeHeartbeat(true);
testAppAttemptsHelper(app1.getApplicationId().toString() + "/", app1, "");
rm.stop();
@@ -174,7 +186,7 @@ public class TestRMWebServicesAppAttempts extends JerseyTestBase {
public void testInvalidAppIdGetAttempts() throws Exception {
rm.start();
MockNM amNodeManager = rm.registerNode("127.0.0.1:1234", 2048);
- RMApp app = rm.submitApp(CONTAINER_MB);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(CONTAINER_MB, rm);
amNodeManager.nodeHeartbeat(true);
WebResource r = resource();
@@ -215,7 +227,7 @@ public class TestRMWebServicesAppAttempts extends JerseyTestBase {
public void testInvalidAppAttemptId() throws Exception {
rm.start();
MockNM amNodeManager = rm.registerNode("127.0.0.1:1234", 2048);
- RMApp app = rm.submitApp(CONTAINER_MB);
+ RMApp app = MockRMAppSubmitter.submitWithMemory(CONTAINER_MB, rm);
amNodeManager.nodeHeartbeat(true);
WebResource r = resource();
@@ -256,7 +268,12 @@ public class TestRMWebServicesAppAttempts extends JerseyTestBase {
public void testNonexistAppAttempts() throws Exception {
rm.start();
MockNM amNodeManager = rm.registerNode("127.0.0.1:1234", 2048);
- rm.submitApp(CONTAINER_MB, "testwordcount", "user1");
+ MockRMAppSubmissionData data =
+ MockRMAppSubmissionData.Builder.createWithMemory(CONTAINER_MB, rm)
+ .withAppName("testwordcount")
+ .withUser("user1")
+ .build();
+ MockRMAppSubmitter.submit(rm, data);
amNodeManager.nodeHeartbeat(true);
WebResource r = resource();
@@ -322,7 +339,12 @@ public class TestRMWebServicesAppAttempts extends JerseyTestBase {
rm.start();
String user = "user1";
MockNM amNodeManager = rm.registerNode("127.0.0.1:1234", 2048);
- RMApp app1 = rm.submitApp(CONTAINER_MB, "testwordcount", user);
... 1383 lines suppressed ...
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org