Example usage for org.apache.hadoop.yarn.server.resourcemanager MockRM submitApp

List of usage examples for org.apache.hadoop.yarn.server.resourcemanager MockRM submitApp

Introduction

In this page you can find the example usage for org.apache.hadoop.yarn.server.resourcemanager MockRM submitApp.

Prototype

public RMApp submitApp(Resource resource, String name, String user, Map<ApplicationAccessType, String> acls,
            String queue) throws Exception 

Source Link

Usage

From source file:io.hops.metadata.util.TestFairSchedulerUtilities.java

License:Apache License

@Test
public void TestSimpleFairShareCalculation() throws Exception {
    MockRM rm = new MockRM(conf);
    rm.start();/*from   w w w .  jav a 2  s.c om*/

    MockNM nm1 = rm.registerNode("127.0.0.1:1234", 6 * GB);
    MockNM nm2 = rm.registerNode("127.0.0.1:1234", 6 * GB);

    //submit an application of 2GB memory
    RMApp app1 = rm.submitApp(3 * GB, "", "user1", null, "queue1");
    RMApp app2 = rm.submitApp(1 * GB, "", "user2", null, "queue2");

    nm1.nodeHeartbeat(true);

    RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
    RMAppAttempt attempt2 = app2.getCurrentAppAttempt();

    MockAM am1 = rm.sendAMLaunched(attempt1.getAppAttemptId());
    am1.registerAppAttempt();

    nm1.nodeHeartbeat(true);

    MockAM am2 = rm.sendAMLaunched(attempt2.getAppAttemptId());
    am2.registerAppAttempt();

    Thread.sleep(3000);

    //get the Scheduler
    FairScheduler fairScheduler = (FairScheduler) rm.getResourceScheduler();

    Collection<FSLeafQueue> queues = fairScheduler.getQueueManager().getLeafQueues();
    assertEquals(3, queues.size());

    rm.stop();

}

From source file:io.hops.metadata.util.TestHopYarnAPIUtilities.java

License:Apache License

@Test(timeout = 30000)
public void random() throws Exception {
    MockRM rm = new MockRM(conf);
    rm.start();/*  w w w .  j  a  v  a2  s. co  m*/
    //register one NodeManager
    MockNM nm1 = rm.registerNode("127.0.0.1:1234", 6 * GB);

    //submit an application of 2GB memory
    RMApp app1 = rm.submitApp(3 * GB, "", "user1", null, "queue1");
    RMApp app2 = rm.submitApp(3 * GB, "", "user2", null, "queue2");

    /**
     * ************************
     * THIS TEST PASSES AS IT IS IF WE INCREASE THE MEMORY OF ONE OF THE 2 APPS,
     * THEN IT WILL FAIL AS THE
     * ENTIRE CLUSTER CAPACITY IS 6 GB
     * APPATTEMPT STATE WILL NOT BE ALLOCATED AND AN EXCEPTION WILL BE THROWN
     *************************
     */
    nm1.nodeHeartbeat(true);

    RMAppAttempt attempt1 = app1.getCurrentAppAttempt();
    RMAppAttempt attempt2 = app2.getCurrentAppAttempt();

    MockAM am1 = rm.sendAMLaunched(attempt1.getAppAttemptId());
    am1.registerAppAttempt();

    MockAM am2 = rm.sendAMLaunched(attempt2.getAppAttemptId());
    am2.registerAppAttempt();
    Thread.sleep(2000);
    rm.stop();
    Thread.sleep(2000);

}