You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by wa...@apache.org on 2015/04/22 02:48:53 UTC
hadoop git commit: YARN-3410. YARN admin should be able to remove
individual application records from RMStateStore. (Rohith Sharmaks via
wangda)
Repository: hadoop
Updated Branches:
refs/heads/branch-2 aa34aa5ca -> 8a9599fb9
YARN-3410. YARN admin should be able to remove individual application records from RMStateStore. (Rohith Sharmaks via wangda)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/8a9599fb
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/8a9599fb
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/8a9599fb
Branch: refs/heads/branch-2
Commit: 8a9599fb9e644ff4934c523cbf595180a963db0f
Parents: aa34aa5
Author: Wangda Tan <wa...@apache.org>
Authored: Tue Apr 21 17:47:27 2015 -0700
Committer: Wangda Tan <wa...@apache.org>
Committed: Tue Apr 21 17:47:27 2015 -0700
----------------------------------------------------------------------
hadoop-yarn-project/CHANGES.txt | 3 ++
hadoop-yarn-project/hadoop-yarn/bin/yarn | 4 ++-
.../server/resourcemanager/ResourceManager.java | 34 ++++++++++++++++++--
.../recovery/FileSystemRMStateStore.java | 9 ++++++
.../recovery/LeveldbRMStateStore.java | 12 +++++++
.../recovery/MemoryRMStateStore.java | 4 +++
.../recovery/NullRMStateStore.java | 5 +++
.../resourcemanager/recovery/RMStateStore.java | 9 ++++++
.../recovery/ZKRMStateStore.java | 9 ++++++
.../recovery/RMStateStoreTestBase.java | 15 +++++++++
.../recovery/TestFSRMStateStore.java | 1 +
.../recovery/TestLeveldbRMStateStore.java | 6 ++++
.../recovery/TestZKRMStateStore.java | 1 +
.../src/site/markdown/YarnCommands.md | 1 +
14 files changed, 110 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index 06b97e4..ef78ad0 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -42,6 +42,9 @@ Release 2.8.0 - UNRELEASED
YARN-3463. Integrate OrderingPolicy Framework with CapacityScheduler.
(Craig Welch via wangda)
+ YARN-3410. YARN admin should be able to remove individual application
+ records from RMStateStore. (Rohith Sharmaks via wangda)
+
IMPROVEMENTS
YARN-1880. Cleanup TestApplicationClientProtocolOnHA
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/hadoop-yarn/bin/yarn
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn b/hadoop-yarn-project/hadoop-yarn/bin/yarn
index fa6fec4..d8bd077 100644
--- a/hadoop-yarn-project/hadoop-yarn/bin/yarn
+++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn
@@ -69,8 +69,10 @@ function print_usage(){
echo " CLASSNAME run the class named CLASSNAME"
echo " or"
echo " where COMMAND is one of:"
- echo " resourcemanager -format-state-store deletes the RMStateStore"
echo " resourcemanager run the ResourceManager"
+ echo " Use -format-state-store for deleting the RMStateStore."
+ echo " Use -remove-application-from-state-store <appId> for "
+ echo " removing application from RMStateStore."
echo " nodemanager run a nodemanager on each slave"
echo " timelineserver run the timeline server"
echo " rmadmin admin tools"
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java
index 8bd8e21..130cfd4 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java
@@ -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");
+ }
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/FileSystemRMStateStore.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/FileSystemRMStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/FileSystemRMStateStore.java
index 7652a07..68d26bb 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/FileSystemRMStateStore.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/FileSystemRMStateStore.java
@@ -559,6 +559,15 @@ public class FileSystemRMStateStore extends RMStateStore {
}
}
+ @Override
+ public synchronized void removeApplication(ApplicationId removeAppId)
+ throws Exception {
+ Path nodeRemovePath = getAppDir(rmAppRoot, removeAppId);
+ if (existsWithRetries(nodeRemovePath)) {
+ deleteFileWithRetries(nodeRemovePath);
+ }
+ }
+
private Path getAppDir(Path root, ApplicationId appId) {
return getNodePath(root, appId.toString());
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/LeveldbRMStateStore.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/LeveldbRMStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/LeveldbRMStateStore.java
index 2c92714..46a3459 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/LeveldbRMStateStore.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/LeveldbRMStateStore.java
@@ -659,6 +659,18 @@ public class LeveldbRMStateStore extends RMStateStore {
fs.delete(root, true);
}
+ @Override
+ public synchronized void removeApplication(ApplicationId removeAppId)
+ throws IOException {
+ String appKey = getApplicationNodeKey(removeAppId);
+ LOG.info("Removing state for app " + removeAppId);
+ try {
+ db.delete(bytes(appKey));
+ } catch (DBException e) {
+ throw new IOException(e);
+ }
+ }
+
@VisibleForTesting
int getNumEntriesInDatabase() throws IOException {
int numEntries = 0;
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/MemoryRMStateStore.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/MemoryRMStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/MemoryRMStateStore.java
index 8cd776e..609f403 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/MemoryRMStateStore.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/MemoryRMStateStore.java
@@ -251,4 +251,8 @@ public class MemoryRMStateStore extends RMStateStore {
public void deleteStore() throws Exception {
}
+ @Override
+ public void removeApplication(ApplicationId removeAppId) throws Exception {
+ }
+
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/NullRMStateStore.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/NullRMStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/NullRMStateStore.java
index d2c1e9d..92c07cd 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/NullRMStateStore.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/NullRMStateStore.java
@@ -150,4 +150,9 @@ public class NullRMStateStore extends RMStateStore {
// Do nothing
}
+ @Override
+ public void removeApplication(ApplicationId removeAppId) throws Exception {
+ // Do nothing
+ }
+
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java
index bccde53..cc4edd7 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java
@@ -907,6 +907,15 @@ public abstract class RMStateStore extends AbstractService {
*/
public abstract void deleteStore() throws Exception;
+ /**
+ * Derived classes must implement this method to remove application from the
+ * state store
+ *
+ * @throws Exception
+ */
+ public abstract void removeApplication(ApplicationId removeAppId)
+ throws Exception;
+
public void setResourceManager(ResourceManager rm) {
this.resourceManager = rm;
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/ZKRMStateStore.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/ZKRMStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/ZKRMStateStore.java
index e8891a2..9da6400 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/ZKRMStateStore.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/ZKRMStateStore.java
@@ -823,6 +823,15 @@ public class ZKRMStateStore extends RMStateStore {
}
}
+ @Override
+ public synchronized void removeApplication(ApplicationId removeAppId)
+ throws Exception {
+ String appIdRemovePath = getNodePath(rmAppRoot, removeAppId.toString());
+ if (existsWithRetries(appIdRemovePath, true) != null) {
+ deleteWithRetries(appIdRemovePath, true);
+ }
+ }
+
// ZK related code
/**
* Watcher implementation which forward events to the ZKRMStateStore This
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStoreTestBase.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStoreTestBase.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStoreTestBase.java
index 5b53a02..3bc0709 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStoreTestBase.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStoreTestBase.java
@@ -591,6 +591,21 @@ public class RMStateStoreTestBase extends ClientBaseWithFixes{
}
}
+ public void testRemoveApplication(RMStateStoreHelper stateStoreHelper)
+ throws Exception {
+ RMStateStore store = stateStoreHelper.getRMStateStore();
+ int noOfApps = 2;
+ ArrayList<RMApp> appList =
+ createAndStoreApps(stateStoreHelper, store, noOfApps);
+
+ RMApp rmApp1 = appList.get(0);
+ store.removeApplication(rmApp1.getApplicationId());
+ Assert.assertFalse(stateStoreHelper.appExists(rmApp1));
+
+ RMApp rmApp2 = appList.get(1);
+ Assert.assertTrue(stateStoreHelper.appExists(rmApp2));
+ }
+
protected void modifyAppState() throws Exception {
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestFSRMStateStore.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestFSRMStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestFSRMStateStore.java
index c5f5578..b1e7a0b 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestFSRMStateStore.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestFSRMStateStore.java
@@ -171,6 +171,7 @@ public class TestFSRMStateStore extends RMStateStoreTestBase {
testEpoch(fsTester);
testAppDeletion(fsTester);
testDeleteStore(fsTester);
+ testRemoveApplication(fsTester);
testAMRMTokenSecretManagerStateStore(fsTester);
} finally {
cluster.shutdown();
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestLeveldbRMStateStore.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestLeveldbRMStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestLeveldbRMStateStore.java
index ae885d2..17cffa0 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestLeveldbRMStateStore.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestLeveldbRMStateStore.java
@@ -91,6 +91,12 @@ public class TestLeveldbRMStateStore extends RMStateStoreTestBase {
}
@Test(timeout = 60000)
+ public void testRemoveApplication() throws Exception {
+ LeveldbStateStoreTester tester = new LeveldbStateStoreTester();
+ testRemoveApplication(tester);
+ }
+
+ @Test(timeout = 60000)
public void testAMTokens() throws Exception {
LeveldbStateStoreTester tester = new LeveldbStateStoreTester();
testAMRMTokenSecretManagerStateStore(tester);
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestZKRMStateStore.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestZKRMStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestZKRMStateStore.java
index 608adbe..6b09d39 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestZKRMStateStore.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestZKRMStateStore.java
@@ -146,6 +146,7 @@ public class TestZKRMStateStore extends RMStateStoreTestBase {
testEpoch(zkTester);
testAppDeletion(zkTester);
testDeleteStore(zkTester);
+ testRemoveApplication(zkTester);
testAMRMTokenSecretManagerStateStore(zkTester);
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8a9599fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnCommands.md
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnCommands.md b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnCommands.md
index db8201a..1169d14 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnCommands.md
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnCommands.md
@@ -193,6 +193,7 @@ Usage: `yarn resourcemanager [-format-state-store]`
| COMMAND\_OPTIONS | Description |
|:---- |:---- |
| -format-state-store | Formats the RMStateStore. This will clear the RMStateStore and is useful if past applications are no longer needed. This should be run only when the ResourceManager is not running. |
+| -remove-application-from-state-store <appId> | Remove the application from RMStateStore. This should be run only when the ResourceManager is not running. |
Start the ResourceManager