diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/RMAppAttemptImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/RMAppAttemptImpl.java index bcc52e2cd22..c8fd0646406 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/RMAppAttemptImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/RMAppAttemptImpl.java @@ -2300,7 +2300,8 @@ public void setRecoveredFinalState(RMAppAttemptState finalState) { @Override public Set getBlacklistedNodes() { - if (scheduler instanceof AbstractYarnScheduler) { + if (this == rmApp.getCurrentAppAttempt() + && scheduler instanceof AbstractYarnScheduler) { AbstractYarnScheduler ayScheduler = (AbstractYarnScheduler) scheduler; SchedulerApplicationAttempt attempt = diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMAppBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMAppBlock.java index d2604009f0e..62fd9627ab0 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMAppBlock.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMAppBlock.java @@ -141,16 +141,17 @@ protected void generateApplicationTable(Block html, if (rmAppAttempt == null) { continue; } + boolean isCurrentAttempt = rmAppAttempt == rmApp.getCurrentAppAttempt(); AppAttemptInfo attemptInfo = new AppAttemptInfo(this.rm, rmAppAttempt, rmApp.getUser(), - WebAppUtils.getHttpSchemePrefix(conf)); + WebAppUtils.getHttpSchemePrefix(conf), isCurrentAttempt); Set nodes = rmAppAttempt.getBlacklistedNodes(); // nodes which are blacklisted by the application String appBlacklistedNodesCount = String.valueOf(nodes.size()); // nodes which are blacklisted by the RM for AM launches - String rmBlacklistedNodesCount = + String rmBlacklistedNodesCount = isCurrentAttempt ? String.valueOf(rmAppAttempt.getAMBlacklistManager() - .getBlacklistUpdates().getBlacklistAdditions().size()); + .getBlacklistUpdates().getBlacklistAdditions().size()) : "-"; String nodeLink = attemptInfo.getNodeHttpAddress(); if (nodeLink != null) { nodeLink = WebAppUtils.getHttpSchemePrefix(conf) + nodeLink; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java index 762569fa6b5..42c1b2f4259 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java @@ -978,7 +978,8 @@ public AppAttemptsInfo getAppAttempts(@Context HttpServletRequest hsr, AppAttemptsInfo appAttemptsInfo = new AppAttemptsInfo(); for (RMAppAttempt attempt : app.getAppAttempts().values()) { AppAttemptInfo attemptInfo = new AppAttemptInfo(rm, attempt, - app.getUser(), hsr.getScheme() + "://"); + app.getUser(), hsr.getScheme() + "://", + attempt == app.getCurrentAppAttempt()); appAttemptsInfo.add(attemptInfo); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppAttemptInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppAttemptInfo.java index b41dc6b07a8..8978095f45b 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppAttemptInfo.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppAttemptInfo.java @@ -50,7 +50,7 @@ public AppAttemptInfo() { } public AppAttemptInfo(ResourceManager rm, RMAppAttempt attempt, String user, - String schemePrefix) { + String schemePrefix, boolean showBlacklistedNodes) { this.startTime = 0; this.containerId = ""; this.nodeHttpAddress = ""; @@ -74,17 +74,19 @@ public AppAttemptInfo(ResourceManager rm, RMAppAttempt attempt, String user, Gson gson = new Gson(); this.exportPorts = gson.toJson(masterContainer.getExposedPorts()); - nodesBlacklistedBySystem = - StringUtils.join(attempt.getAMBlacklistManager() - .getBlacklistUpdates().getBlacklistAdditions(), ", "); - if (rm.getResourceScheduler() instanceof AbstractYarnScheduler) { - AbstractYarnScheduler ayScheduler = - (AbstractYarnScheduler) rm.getResourceScheduler(); - SchedulerApplicationAttempt sattempt = - ayScheduler.getApplicationAttempt(attempt.getAppAttemptId()); - if (sattempt != null) { - blacklistedNodes = - StringUtils.join(sattempt.getBlacklistedNodes(), ", "); + if (showBlacklistedNodes) { + nodesBlacklistedBySystem = + StringUtils.join(attempt.getAMBlacklistManager() + .getBlacklistUpdates().getBlacklistAdditions(), ", "); + if (rm.getResourceScheduler() instanceof AbstractYarnScheduler) { + AbstractYarnScheduler ayScheduler = + (AbstractYarnScheduler) rm.getResourceScheduler(); + SchedulerApplicationAttempt sattempt = + ayScheduler.getApplicationAttempt(attempt.getAppAttemptId()); + if (sattempt != null) { + blacklistedNodes = + StringUtils.join(sattempt.getBlacklistedNodes(), ", "); + } } } }