Repository: hadoop Updated Branches: refs/heads/branch-2 d9a07b390 -> 6ee0fe70c
YARN-6872. [Addendum patch] Ensure apps could run given NodeLabels are disabled post RM switchover/restart. Contributed by Sunil G Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/6ee0fe70 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/6ee0fe70 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/6ee0fe70 Branch: refs/heads/branch-2 Commit: 6ee0fe70c79448d3b2844e4e11562ea670d61e27 Parents: d9a07b3 Author: Jian He <[email protected]> Authored: Wed Aug 2 00:03:25 2017 -0700 Committer: Jian He <[email protected]> Committed: Wed Aug 2 00:03:59 2017 -0700 ---------------------------------------------------------------------- .../scheduler/AbstractYarnScheduler.java | 18 ++++-------------- .../scheduler/AppSchedulingInfo.java | 6 +++--- .../scheduler/SchedulerApplicationAttempt.java | 2 +- 3 files changed, 8 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/6ee0fe70/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.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/scheduler/AbstractYarnScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java index 30cd5ce..2849309 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java @@ -519,20 +519,10 @@ public abstract class AbstractYarnScheduler container.setVersion(status.getVersion()); ApplicationAttemptId attemptId = container.getId().getApplicationAttemptId(); - String labelExpression = status.getNodeLabelExpression(); - // If NodeLabel is disabled but recovered container has label expression - // its better to suppress that and considered as default label. - if (!status.getNodeLabelExpression().isEmpty() && !YarnConfiguration - .areNodeLabelsEnabled(rmContext.getYarnConfiguration())) { - labelExpression = RMNodeLabelsManager.NO_LABEL; - } - - RMContainer rmContainer = - new RMContainerImpl(container, - SchedulerRequestKey.extractFrom(container), attemptId, - node.getNodeID(), applications.get( - attemptId.getApplicationId()).getUser(), rmContext, - status.getCreationTime(), labelExpression); + RMContainer rmContainer = new RMContainerImpl(container, + SchedulerRequestKey.extractFrom(container), attemptId, node.getNodeID(), + applications.get(attemptId.getApplicationId()).getUser(), rmContext, + status.getCreationTime(), status.getNodeLabelExpression()); return rmContainer; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/6ee0fe70/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AppSchedulingInfo.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/scheduler/AppSchedulingInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AppSchedulingInfo.java index 9532343..21a9954 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AppSchedulingInfo.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AppSchedulingInfo.java @@ -545,7 +545,7 @@ public class AppSchedulingInfo { this.placesBlacklistedByApp = appInfo.getBlackList(); } - public void recoverContainer(RMContainer rmContainer) { + public void recoverContainer(RMContainer rmContainer, String partition) { try { this.writeLock.lock(); QueueMetrics metrics = queue.getMetrics(); @@ -561,8 +561,8 @@ public class AppSchedulingInfo { return; } - metrics.allocateResources(rmContainer.getNodeLabelExpression(), - user, 1, rmContainer.getAllocatedResource(), false); + metrics.allocateResources(partition, user, 1, + rmContainer.getAllocatedResource(), false); } finally { this.writeLock.unlock(); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/6ee0fe70/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerApplicationAttempt.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/scheduler/SchedulerApplicationAttempt.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerApplicationAttempt.java index e1d714d..c5f9cf0 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerApplicationAttempt.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerApplicationAttempt.java @@ -1103,7 +1103,7 @@ public class SchedulerApplicationAttempt implements SchedulableEntity { try { writeLock.lock(); // recover app scheduling info - appSchedulingInfo.recoverContainer(rmContainer); + appSchedulingInfo.recoverContainer(rmContainer, node.getPartition()); if (rmContainer.getState().equals(RMContainerState.COMPLETED)) { return; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
