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]

Reply via email to