diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeStatusUpdaterImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeStatusUpdaterImpl.java index 8154723f08f..6bce66c8645 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeStatusUpdaterImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeStatusUpdaterImpl.java @@ -612,7 +612,15 @@ private void updateNMResource(Resource resource) { private List getRunningApplications() { List runningApplications = new ArrayList(); - runningApplications.addAll(this.context.getApplications().keySet()); + for (Application application : this.context.getApplications().values()) { + if (!(application.getApplicationState().equals(ApplicationState.FINISHED) + || application.getApplicationState().equals( + ApplicationState.APPLICATION_RESOURCES_CLEANINGUP))) { + runningApplications.add(application.getAppId()); + } + } + LOG.info("running application num:" + runningApplications.size() + + ",total:" + context.getApplications().size()); return runningApplications; }