Example usage for org.apache.hadoop.yarn.api.records YarnApplicationState FINISHED

List of usage examples for org.apache.hadoop.yarn.api.records YarnApplicationState FINISHED

Introduction

In this page you can find the example usage for org.apache.hadoop.yarn.api.records YarnApplicationState FINISHED.

Prototype

YarnApplicationState FINISHED

To view the source code for org.apache.hadoop.yarn.api.records YarnApplicationState FINISHED.

Click Source Link

Document

Application which finished successfully.

Usage

From source file:org.springframework.cloud.dataflow.yarn.buildtests.AbstractCliBootYarnClusterTests.java

License:Apache License

protected ApplicationInfo submitApplicationAndWait(Object source, String[] args, long timeout,
        final TimeUnit unit) throws Exception {
    return submitApplicationAndWaitState(source, args, timeout, unit, YarnApplicationState.FINISHED,
            YarnApplicationState.FAILED);
}

From source file:org.springframework.cloud.dataflow.yarn.buildtests.YarnCloudAppServiceApplicationIT.java

License:Apache License

@Test
public void testTask1() throws Exception {
    Properties instanceProperties = new Properties();
    instanceProperties.setProperty("spring.yarn.applicationVersion", "app");
    instanceProperties.setProperty("spring.cloud.dataflow.yarn.version", getProjectVersion());
    String[] runArgs = new String[] { "--spring.config.name=task",
            "--spring.yarn.client.launchcontext.arguments.--dataflow.module.coordinates=org.springframework.cloud.task.module:timestamp-task:jar:exec:1.0.0.BUILD-SNAPSHOT" };
    ApplicationContextInitializer<?>[] initializers = new ApplicationContextInitializer<?>[] {
            new HadoopConfigurationInjectingInitializer(getConfiguration()) };
    YarnCloudAppServiceApplication app = new YarnCloudAppServiceApplication("app", getProjectVersion(),
            "application.properties", instanceProperties, runArgs, initializers);

    app.afterPropertiesSet();//w w  w. ja v a2s.co  m
    setYarnClient(app.getContext().getBean(YarnClient.class));

    app.pushApplication("app");
    Collection<CloudAppInfo> pushedApplications = app.getPushedApplications();
    assertThat(pushedApplications.size(), is(1));

    String appId = app.submitApplication("app");
    ApplicationId applicationId = ConverterUtils.toApplicationId(appId);
    ApplicationInfo info = waitState(applicationId, 3, TimeUnit.MINUTES, YarnApplicationState.FINISHED,
            YarnApplicationState.FAILED);
    assertThat(info.getYarnApplicationState(), is(YarnApplicationState.FINISHED));

    app.destroy();
}

From source file:org.springframework.yarn.boot.app.YarnKillApplication.java

License:Apache License

public String run(String... args) {
    SpringApplicationBuilder builder = new SpringApplicationBuilder();
    builder.web(false);/*from   ww  w  .jav a 2 s . com*/
    builder.sources(YarnKillApplication.class, OperationProperties.class);
    SpringYarnBootUtils.addSources(builder, sources.toArray(new Object[0]));
    SpringYarnBootUtils.addProfiles(builder, profiles.toArray(new String[0]));
    if (StringUtils.hasText(applicationBaseDir)) {
        appProperties.setProperty("spring.yarn.applicationDir", applicationBaseDir + applicationVersion + "/");
    }
    SpringYarnBootUtils.addApplicationListener(builder, appProperties);
    SpringApplicationTemplate template = new SpringApplicationTemplate(builder);

    return template.execute(new SpringApplicationCallback<String>() {

        @Override
        public String runWithSpringApplication(ApplicationContext context) throws Exception {
            YarnClient client = context.getBean(YarnClient.class);
            OperationProperties operationProperties = context.getBean(OperationProperties.class);
            ApplicationId applicationId = ConverterUtils
                    .toApplicationId(operationProperties.getApplicationId());
            ApplicationReport report = client.getApplicationReport(applicationId);
            if (report.getYarnApplicationState() == YarnApplicationState.FINISHED
                    || report.getYarnApplicationState() == YarnApplicationState.KILLED
                    || report.getYarnApplicationState() == YarnApplicationState.FAILED) {
                return "Application " + applicationId + " is not running";
            } else {
                client.killApplication(applicationId);
                return "Kill request for " + applicationId + " sent";
            }
        }

    }, args);

}

From source file:org.springframework.yarn.boot.app.YarnKillApplicationTests.java

License:Apache License

@Test
public void testKill() throws Exception {
    String ID = "testKill";

    // install//from ww w. j  a v  a 2 s .c  om
    YarnPushApplication pushApp = new YarnPushApplication();
    pushApp.applicationVersion(ID);
    pushApp.applicationBaseDir(BASE);

    Properties appProperties = new Properties();
    SpringYarnBootUtils.mergeHadoopPropertyIntoMap(configuration, "fs.defaultFS", "spring.hadoop.fsUri",
            appProperties);
    SpringYarnBootUtils.mergeHadoopPropertyIntoMap(configuration, "yarn.resourcemanager.address",
            "spring.hadoop.resourceManagerAddress", appProperties);
    SpringYarnBootUtils.mergeHadoopPropertyIntoMap(configuration, "yarn.resourcemanager.scheduler.address",
            "spring.hadoop.resourceManagerSchedulerAddress", appProperties);

    pushApp.configFile("application.properties", appProperties);
    pushApp.appProperties(appProperties);

    String[] installArgs = new String[] {
            "--spring.yarn.appmaster.appmasterClass=org.springframework.yarn.boot.app.StartSleepAppmaster",
            "--spring.yarn.client.clientClass=org.springframework.yarn.client.DefaultApplicationYarnClient",
            "--spring.yarn.client.files[0]=" + APPMASTER_ARCHIVE_PATH };
    pushApp.run(installArgs);

    // submit
    YarnSubmitApplication submitApp = new YarnSubmitApplication();
    submitApp.applicationVersion(ID);
    submitApp.applicationBaseDir(BASE);
    submitApp.appProperties(appProperties);

    String[] submitArgs = new String[] {
            "--spring.yarn.client.clientClass=org.springframework.yarn.client.DefaultApplicationYarnClient",
            "--spring.yarn.client.launchcontext.archiveFile=" + APPMASTER_ARCHIVE };

    ApplicationId applicationId = submitApp.run(submitArgs);

    YarnApplicationState state = waitState(applicationId, 60, TimeUnit.SECONDS, YarnApplicationState.FINISHED,
            YarnApplicationState.FAILED, YarnApplicationState.RUNNING);
    assertThat(state, is(YarnApplicationState.RUNNING));

    // kill
    YarnKillApplication killApp = new YarnKillApplication();
    killApp.appProperties(appProperties);

    String[] killArgs = new String[] {
            "--spring.yarn.internal.YarnKillApplication.applicationId=" + applicationId.toString() };

    String info = killApp.run(killArgs);
    assertThat(info, containsString("Kill request for"));
}

From source file:org.springframework.yarn.boot.app.YarnSubmitApplicationTests.java

License:Apache License

@Test
public void testPushSubmit() throws Exception {
    String ID = "testPushSubmit";

    // push//w  w  w  . j a va 2 s .  c o m
    YarnPushApplication pushApp = new YarnPushApplication();
    pushApp.applicationVersion(ID);
    pushApp.applicationBaseDir(BASE);

    Properties appProperties = new Properties();
    SpringYarnBootUtils.mergeHadoopPropertyIntoMap(configuration, "fs.defaultFS", "spring.hadoop.fsUri",
            appProperties);
    SpringYarnBootUtils.mergeHadoopPropertyIntoMap(configuration, "yarn.resourcemanager.address",
            "spring.hadoop.resourceManagerAddress", appProperties);
    SpringYarnBootUtils.mergeHadoopPropertyIntoMap(configuration, "yarn.resourcemanager.scheduler.address",
            "spring.hadoop.resourceManagerSchedulerAddress", appProperties);

    pushApp.configFile("application.properties", appProperties);
    pushApp.appProperties(appProperties);

    String[] args = new String[] {
            "--spring.yarn.appmaster.appmasterClass=org.springframework.yarn.boot.app.StartExitAppmaster",
            "--spring.yarn.client.clientClass=org.springframework.yarn.client.DefaultApplicationYarnClient",
            "--spring.yarn.client.files[0]=" + APPMASTER_ARCHIVE_PATH };
    pushApp.run(args);

    // submit
    YarnSubmitApplication submitApp = new YarnSubmitApplication();
    submitApp.applicationVersion(ID);
    submitApp.applicationBaseDir(BASE);
    submitApp.appProperties(appProperties);

    args = new String[] {
            "--spring.yarn.client.clientClass=org.springframework.yarn.client.DefaultApplicationYarnClient",
            "--spring.yarn.client.launchcontext.archiveFile=" + APPMASTER_ARCHIVE };

    ApplicationId applicationId = submitApp.run(args);

    YarnApplicationState state = waitState(applicationId, 60, TimeUnit.SECONDS, YarnApplicationState.FINISHED,
            YarnApplicationState.FAILED);
    assertThat(state, is(YarnApplicationState.FINISHED));
}

From source file:org.springframework.yarn.boot.test.junit.AbstractBootYarnClusterTests.java

License:Apache License

/**
 * Submits application and wait state.//w ww. j  a va  2  s . c  o  m
 *
 * @param source the boot application config source
 * @param args the boot application args
 * @param timeout the timeout for wait
 * @param unit the unit for timeout
 * @return Application info for submit
 * @throws Exception if exception occurred
 * @see ApplicationInfo
 * @see #submitApplicationAndWaitState(Object, String[], long, TimeUnit, YarnApplicationState...)
 */
protected ApplicationInfo submitApplicationAndWait(Object source, String[] args, long timeout,
        final TimeUnit unit) throws Exception {
    return submitApplicationAndWaitState(source, args, timeout, unit, YarnApplicationState.FINISHED,
            YarnApplicationState.FAILED);
}

From source file:org.springframework.yarn.examples.ActivatorTests.java

License:Apache License

@Test
public void testAppInstallSubmit() throws Exception {

    String ID = "foo-1";
    String BASE = "/apps/";
    setYarnClient(buildYarnClient());/*from w  w w  . jav  a 2 s  . co  m*/

    String[] installAppArgs = new String[] { "--spring.hadoop.fsUri=" + getConfiguration().get("fs.defaultFS"),
            "--spring.hadoop.resourceManagerAddress=" + getConfiguration().get("yarn.resourcemanager.address"),
            "--spring.yarn.client.files[0]=file:build/libs/test-install-submit-appmaster-2.0.0.BUILD-SNAPSHOT.jar",
            "--spring.yarn.client.files[1]=file:build/libs/test-install-submit-container-2.0.0.BUILD-SNAPSHOT.jar" };
    Properties appProperties = new Properties();
    appProperties.setProperty("spring.yarn.applicationDir", BASE + ID + "/");
    YarnPushApplication installApp = new YarnPushApplication();
    installApp.applicationVersion(ID);
    installApp.applicationBaseDir(BASE);
    installApp.configFile("application.properties", appProperties);
    installApp.run(installAppArgs);
    listFiles();
    catFile(BASE + ID + "/application.properties");

    String rm = getConfiguration().get("yarn.resourcemanager.address");
    String[] split = StringUtils.split(rm, ":");
    String[] submitAppArgs = new String[] { "--spring.yarn.applicationDir=" + BASE + ID + "/",
            "--spring.hadoop.fsUri=" + getConfiguration().get("fs.defaultFS"),
            "--spring.hadoop.resourceManagerHost=" + split[0],
            "--spring.hadoop.resourceManagerAddress=" + getConfiguration().get("yarn.resourcemanager.address"),
            "--spring.hadoop.resourceManagerSchedulerAddress="
                    + getConfiguration().get("yarn.resourcemanager.scheduler.address") };
    YarnSubmitApplication submitApp = new YarnSubmitApplication();
    submitApp.applicationVersion(ID);
    submitApp.applicationBaseDir(BASE);
    ApplicationId applicationId = submitApp.run(submitAppArgs);

    YarnApplicationState state = waitState(applicationId, 2, TimeUnit.MINUTES, YarnApplicationState.FINISHED);
    assertThat(state, is(YarnApplicationState.FINISHED));

    List<Resource> resources = ContainerLogUtils.queryContainerLogs(getYarnCluster(), applicationId);
    assertThat(resources, notNullValue());
    assertThat(resources.size(), is(6));

    for (Resource res : resources) {
        File file = res.getFile();
        String content = ContainerLogUtils.getFileContent(file);
        if (file.getName().endsWith("stdout")) {
            assertThat(file.length(), greaterThan(0l));
            if (file.getName().equals("Container.stdout")) {
                assertThat(content, containsString("Hello from ActivatorPojo"));
            }
        } else if (file.getName().endsWith("stderr")) {
            assertThat("stderr file is not empty: " + content, file.length(), is(0l));
        }
    }
}

From source file:org.springframework.yarn.examples.BatchAmjobTests.java

License:Apache License

@Test
@Timed(millis = 70000)//from w  ww  .  j a v  a 2 s. c  om
public void testAppSubmission() throws Exception {
    ApplicationInfo info = submitApplicationAndWait();
    assertThat(info, notNullValue());
    assertThat(info.getYarnApplicationState(), notNullValue());
    assertThat(info.getApplicationId(), notNullValue());
    assertThat(info.getYarnApplicationState(), is(YarnApplicationState.FINISHED));

    List<Resource> resources = ContainerLogUtils.queryContainerLogs(getYarnCluster(), info.getApplicationId());

    // only appmaster, 2 log files
    assertThat(resources, notNullValue());
    assertThat(resources.size(), is(2));

    for (Resource res : resources) {
        File file = res.getFile();
        if (file.getName().endsWith("stdout")) {
            // there has to be some content in stdout file
            assertThat(file.length(), greaterThan(0l));
            if (file.getName().equals("Appmaster.stdout")) {
                Scanner scanner = new Scanner(file);
                String content = scanner.useDelimiter("\\A").next();
                scanner.close();
                // this is what appmaster will log in stdout
                assertThat(content, containsString("Hello1"));
            }
        } else if (file.getName().endsWith("stderr")) {
            String content = "";
            if (file.length() > 0) {
                Scanner scanner = new Scanner(file);
                content = scanner.useDelimiter("\\A").next();
                scanner.close();
            }
            // can't have anything in stderr files
            assertThat("stderr file is not empty: " + content, file.length(), is(0l));
        }
    }
}

From source file:org.springframework.yarn.examples.BatchFilesTests.java

License:Apache License

@Test
@Timed(millis = 70000)/*  w ww.  ja  va2s.c o  m*/
public void testAppSubmission() throws Exception {
    createTestData();

    ApplicationInfo info = submitApplicationAndWait();
    assertThat(info, notNullValue());
    assertThat(info.getYarnApplicationState(), notNullValue());
    assertThat(info.getApplicationId(), notNullValue());
    assertThat(info.getYarnApplicationState(), is(YarnApplicationState.FINISHED));

    List<Resource> resources = ContainerLogUtils.queryContainerLogs(getYarnCluster(), info.getApplicationId());

    assertThat(resources, notNullValue());
    assertThat(resources.size(), is(8));

    int linesFound = 0;
    HashSet<String> linesUnique = new HashSet<String>(300);

    for (Resource res : resources) {
        File file = res.getFile();
        if (file.getName().endsWith("stdout")) {
            // there has to be some content in stdout file
            assertThat(file.length(), greaterThan(0l));
            if (file.getName().equals("Container.stdout")) {
                Scanner scanner = new Scanner(file);
                while (scanner.hasNextLine()) {
                    String line = scanner.nextLine();
                    if (line.contains("writing:")) {
                        String[] split = line.split("\\s+");
                        linesUnique.add(split[split.length - 1]);
                        linesFound++;
                    }
                }
                scanner.close();
            }
        } else if (file.getName().endsWith("stderr")) {
            String content = "";
            if (file.length() > 0) {
                Scanner scanner = new Scanner(file);
                content = scanner.useDelimiter("\\A").next();
                scanner.close();
            }
            // can't have anything in stderr files
            assertThat("stderr file is not empty: " + content, file.length(), is(0l));
        }
    }

    assertThat(linesFound, is(300));
    assertThat(linesUnique.size(), is(300));
}

From source file:org.springframework.yarn.examples.BatchPartitionTests.java

License:Apache License

@Test
@Timed(millis = 70000)//  w  w  w . j a v a  2 s  . co  m
public void testAppSubmission() throws Exception {
    ApplicationInfo info = submitApplicationAndWait();
    assertThat(info, notNullValue());
    assertThat(info.getYarnApplicationState(), notNullValue());
    assertThat(info.getApplicationId(), notNullValue());
    assertThat(info.getYarnApplicationState(), is(YarnApplicationState.FINISHED));

    List<Resource> resources = ContainerLogUtils.queryContainerLogs(getYarnCluster(), info.getApplicationId());

    assertThat(resources, notNullValue());
    assertThat(resources.size(), is(10));

    for (Resource res : resources) {
        File file = res.getFile();
        if (file.getName().endsWith("stdout")) {
            // there has to be some content in stdout file
            assertThat(file.length(), greaterThan(0l));
        } else if (file.getName().endsWith("stderr")) {
            String content = "";
            if (file.length() > 0) {
                Scanner scanner = new Scanner(file);
                content = scanner.useDelimiter("\\A").next();
                scanner.close();
            }
            // can't have anything in stderr files
            assertThat("stderr file is not empty: " + content, file.length(), is(0l));
        }
    }
}