in spark-utils/src/main/java/com/aliyun/odps/spark/SparkLauncherTest.java [61:85]
public static void killApplication(String applicationId) {
YarnClient client = YarnClient.createYarnClient();
Configuration conf = new Configuration();
conf.set("odps.access.id", accessId);
conf.set("odps.access.key", accessKey);
conf.set("odps.project.name", projectName);
conf.set("odps.end.point", endPoint);
client.init(conf);
client.start();
ApplicationId appId = ConverterUtils.toApplicationId(applicationId);
try {
ApplicationReport appReport = client.getApplicationReport(appId);
if (appReport.getYarnApplicationState() == YarnApplicationState.FINISHED
|| appReport.getYarnApplicationState() == YarnApplicationState.KILLED
|| appReport.getYarnApplicationState() == YarnApplicationState.FAILED) {
System.out.println("Application " + applicationId + " has already finished ");
} else {
System.out.println("Killing application " + applicationId);
client.killApplication(appId);
}
} catch (Exception e) {
System.out.println("Kill application with id '" + applicationId + "' failed: " + e.getMessage());
}
}