Java tutorial
/* * Copyright 2013 the original author or authors. * * Licensed 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.springframework.yarn.examples; import java.util.Properties; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.yarn.api.records.ApplicationId; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.util.StringUtils; import org.springframework.yarn.YarnSystemConstants; import org.springframework.yarn.client.CommandLineClientRunner; import org.springframework.yarn.client.YarnClient; /** * Main class for kill-application example. * * @author Janne Valkealahti * */ public class Main extends CommandLineClientRunner { private static final Log log = LogFactory.getLog(Main.class); public static void main(String args[]) { Properties properties = StringUtils.splitArrayElementsIntoProperties(args, "="); if (properties == null) { properties = new Properties(); } boolean nokill = Boolean.parseBoolean(properties.getProperty("nokill")); String appid = properties.getProperty("appid"); if (nokill) { new Main().doMain(new String[] { YarnSystemConstants.DEFAULT_CONTEXT_FILE_CLIENT, YarnSystemConstants.DEFAULT_ID_CLIENT, CommandLineClientRunner.OPT_SUBMIT }); } else if (appid != null) { new Main().doMain(new String[] { YarnSystemConstants.DEFAULT_CONTEXT_FILE_CLIENT, YarnSystemConstants.DEFAULT_ID_CLIENT, CommandLineClientRunner.OPT_KILL, CommandLineClientRunner.ARG_APPLICATION_ID + "=" + appid }); } else if (!nokill) { ConfigurableApplicationContext context = null; try { context = new ClassPathXmlApplicationContext("application-context.xml"); System.out.println("Submitting kill-application example"); YarnClient client = (YarnClient) context.getBean("yarnClient"); ApplicationId applicationId = client.submitApplication(); System.out.println("Submitted kill-application example"); System.out.println("Waiting 30 seconds before aborting the application"); Thread.sleep(30000); System.out.println( "Asking resource manager to abort application with applicationid=" + applicationId); client.killApplication(applicationId); } catch (Throwable e) { log.error("Error in main method", e); } finally { if (context != null) { context.close(); } } } } }