|
@@ -93,6 +93,7 @@ import org.apache.hadoop.yarn.server.webproxy.AppReportFetcher;
|
|
|
import org.apache.hadoop.yarn.server.webproxy.ProxyUriUtils;
|
|
|
import org.apache.hadoop.yarn.server.webproxy.WebAppProxy;
|
|
|
import org.apache.hadoop.yarn.server.webproxy.WebAppProxyServlet;
|
|
|
+import org.apache.hadoop.yarn.util.ConverterUtils;
|
|
|
import org.apache.hadoop.yarn.webapp.WebApp;
|
|
|
import org.apache.hadoop.yarn.webapp.WebApps;
|
|
|
import org.apache.hadoop.yarn.webapp.WebApps.Builder;
|
|
@@ -100,6 +101,7 @@ import org.apache.hadoop.yarn.webapp.util.WebAppUtils;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
+import java.io.PrintStream;
|
|
|
import java.net.InetSocketAddress;
|
|
|
import java.security.PrivilegedExceptionAction;
|
|
|
import java.util.ArrayList;
|
|
@@ -1197,8 +1199,15 @@ public class ResourceManager extends CompositeService implements Recoverable {
|
|
|
GenericOptionsParser hParser = new GenericOptionsParser(conf, argv);
|
|
|
argv = hParser.getRemainingArgs();
|
|
|
// If -format-state-store, then delete RMStateStore; else startup normally
|
|
|
- if (argv.length == 1 && argv[0].equals("-format-state-store")) {
|
|
|
- deleteRMStateStore(conf);
|
|
|
+ if (argv.length >= 1) {
|
|
|
+ if (argv[0].equals("-format-state-store")) {
|
|
|
+ deleteRMStateStore(conf);
|
|
|
+ } else if (argv[0].equals("-remove-application-from-state-store")
|
|
|
+ && argv.length == 2) {
|
|
|
+ removeApplication(conf, argv[1]);
|
|
|
+ } else {
|
|
|
+ printUsage(System.err);
|
|
|
+ }
|
|
|
} else {
|
|
|
ResourceManager resourceManager = new ResourceManager();
|
|
|
ShutdownHookManager.get().addShutdownHook(
|
|
@@ -1275,4 +1284,25 @@ public class ResourceManager extends CompositeService implements Recoverable {
|
|
|
rmStore.stop();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private static void removeApplication(Configuration conf, String applicationId)
|
|
|
+ throws Exception {
|
|
|
+ RMStateStore rmStore = RMStateStoreFactory.getStore(conf);
|
|
|
+ rmStore.init(conf);
|
|
|
+ rmStore.start();
|
|
|
+ try {
|
|
|
+ ApplicationId removeAppId = ConverterUtils.toApplicationId(applicationId);
|
|
|
+ LOG.info("Deleting application " + removeAppId + " from state store");
|
|
|
+ rmStore.removeApplication(removeAppId);
|
|
|
+ LOG.info("Application is deleted from state store");
|
|
|
+ } finally {
|
|
|
+ rmStore.stop();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void printUsage(PrintStream out) {
|
|
|
+ out.println("Usage: java ResourceManager [-format-state-store]");
|
|
|
+ out.println(" "
|
|
|
+ + "[-remove-application-from-state-store <appId>]" + "\n");
|
|
|
+ }
|
|
|
}
|