Repository: hadoop
Updated Branches:
  refs/heads/branch-2.6 c0b17bf10 -> e181498a6


YARN-2503. Added node lablels in web UI. Contributed by Wangda Tan
(cherry picked from commit d5e0a09721a5156fa2ee51ac1c32fbfd9905b8fb)
(cherry picked from commit 720de7eb4ca310e8d800938fbb56fd4de06fc6a5)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/e181498a
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e181498a
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e181498a

Branch: refs/heads/branch-2.6
Commit: e181498a672ae14dc0309518206b7d1dd8c52dfa
Parents: c0b17bf
Author: Jian He <[email protected]>
Authored: Tue Oct 28 17:57:54 2014 -0700
Committer: Jian He <[email protected]>
Committed: Tue Oct 28 18:02:13 2014 -0700

----------------------------------------------------------------------
 hadoop-yarn-project/CHANGES.txt                     |  2 ++
 .../webapp/CapacitySchedulerPage.java               |  3 ++-
 .../server/resourcemanager/webapp/NodesPage.java    |  2 ++
 .../webapp/dao/CapacitySchedulerQueueInfo.java      | 16 ++++++++++++++++
 .../server/resourcemanager/webapp/dao/NodeInfo.java | 15 +++++++++++++++
 .../resourcemanager/webapp/TestNodesPage.java       |  2 +-
 .../webapp/TestRMWebServicesCapacitySched.java      |  4 ++--
 7 files changed, 40 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/e181498a/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index cd702b7..bbf10ad 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -343,6 +343,8 @@ Release 2.6.0 - UNRELEASED
 
     YARN-2760. Remove 'experimental' from FairScheduler docs. (Harsh J via 
kasha)
 
+    YARN-2503. Added node lablels in web UI. (Wangda Tan via jianhe)
+
   OPTIMIZATIONS
 
   BUG FIXES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e181498a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.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/webapp/CapacitySchedulerPage.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java
index a53ad98..d289f66 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java
@@ -120,7 +120,8 @@ class CapacitySchedulerPage extends RmView {
           _("Configured Max Capacity:", percent(lqinfo.getMaxCapacity() / 
100)).
           _("Configured Minimum User Limit Percent:", 
Integer.toString(lqinfo.getUserLimit()) + "%").
           _("Configured User Limit Factor:", String.format("%.1f", 
lqinfo.getUserLimitFactor())).
-          _r("Active users: ", activeUserList.toString());
+          _("Active Users: ", activeUserList.toString()).
+          _r("Accessible Node Labels:", StringUtils.join(",", 
lqinfo.getNodeLabels()));
 
       html._(InfoBlock.class);
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e181498a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/NodesPage.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/webapp/NodesPage.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/NodesPage.java
index f10e255..270d915 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/NodesPage.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/NodesPage.java
@@ -66,6 +66,7 @@ class NodesPage extends RmView {
       TBODY<TABLE<Hamlet>> tbody = html.table("#nodes").
           thead().
           tr().
+          th(".nodelabels", "Node Labels").
           th(".rack", "Rack").
           th(".state", "Node State").
           th(".nodeaddress", "Node Address").
@@ -113,6 +114,7 @@ class NodesPage extends RmView {
         int usedMemory = (int)info.getUsedMemory();
         int availableMemory = (int)info.getAvailableMemory();
         TR<TBODY<TABLE<Hamlet>>> row = tbody.tr().
+            td(StringUtils.join(",", info.getNodeLabels())).
             td(info.getRack()).
             td(info.getState()).
             td(info.getNodeId());

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e181498a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerQueueInfo.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/webapp/dao/CapacitySchedulerQueueInfo.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/CapacitySchedulerQueueInfo.java
index d5c84d8..40dddea 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/CapacitySchedulerQueueInfo.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/CapacitySchedulerQueueInfo.java
@@ -17,6 +17,10 @@
  */
 package org.apache.hadoop.yarn.server.resourcemanager.webapp.dao;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Set;
+
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
@@ -50,6 +54,7 @@ public class CapacitySchedulerQueueInfo {
   protected CapacitySchedulerQueueInfoList queues;
   protected ResourceInfo resourcesUsed;
   private boolean hideReservationQueues = false;
+  protected ArrayList<String> nodeLabels = new ArrayList<String>();
 
   CapacitySchedulerQueueInfo() {
   };
@@ -75,6 +80,13 @@ public class CapacitySchedulerQueueInfo {
        !((PlanQueue)q).showReservationsAsQueues()) {
       hideReservationQueues = true;
     }
+    
+    // add labels
+    Set<String> labelSet = q.getAccessibleNodeLabels();
+    if (labelSet != null) {
+      nodeLabels.addAll(labelSet);
+      Collections.sort(nodeLabels);
+    }
   }
 
   public float getCapacity() {
@@ -138,4 +150,8 @@ public class CapacitySchedulerQueueInfo {
   static float cap(float val, float low, float hi) {
     return Math.min(Math.max(val, low), hi);
   }
+  
+  public ArrayList<String> getNodeLabels() {
+    return this.nodeLabels;
+  }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e181498a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/NodeInfo.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/webapp/dao/NodeInfo.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/NodeInfo.java
index 73a2db1..3104117 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/NodeInfo.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/NodeInfo.java
@@ -18,6 +18,10 @@
 
 package org.apache.hadoop.yarn.server.resourcemanager.webapp.dao;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Set;
+
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
@@ -45,6 +49,7 @@ public class NodeInfo {
   protected long availMemoryMB;
   protected long usedVirtualCores;
   protected long availableVirtualCores;
+  protected ArrayList<String> nodeLabels = new ArrayList<String>();
 
   public NodeInfo() {
   } // JAXB needs this
@@ -70,6 +75,13 @@ public class NodeInfo {
     this.lastHealthUpdate = ni.getLastHealthReportTime();
     this.healthReport = String.valueOf(ni.getHealthReport());
     this.version = ni.getNodeManagerVersion();
+    
+    // add labels
+    Set<String> labelSet = ni.getNodeLabels();
+    if (labelSet != null) {
+      nodeLabels.addAll(labelSet);
+      Collections.sort(nodeLabels);
+    }
   }
 
   public String getRack() {
@@ -124,4 +136,7 @@ public class NodeInfo {
     return this.availableVirtualCores;
   }
 
+  public ArrayList<String> getNodeLabels() {
+    return this.nodeLabels;
+  }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e181498a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestNodesPage.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/webapp/TestNodesPage.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestNodesPage.java
index 0974311..bb38079 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestNodesPage.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestNodesPage.java
@@ -49,7 +49,7 @@ public class TestNodesPage {
   // Number of Actual Table Headers for NodesPage.NodesBlock might change in
   // future. In that case this value should be adjusted to the new value.
   final int numberOfThInMetricsTable = 16;
-  final int numberOfActualTableHeaders = 12;
+  final int numberOfActualTableHeaders = 13;
 
   private Injector injector;
   

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e181498a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.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/webapp/TestRMWebServicesCapacitySched.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java
index e58c30f..3e62c3c 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java
@@ -357,10 +357,10 @@ public class TestRMWebServicesCapacitySched extends 
JerseyTest {
   private void verifySubQueue(JSONObject info, String q, 
       float parentAbsCapacity, float parentAbsMaxCapacity)
       throws JSONException, Exception {
-    int numExpectedElements = 12;
+    int numExpectedElements = 13;
     boolean isParentQueue = true;
     if (!info.has("queues")) {
-      numExpectedElements = 22;
+      numExpectedElements = 23;
       isParentQueue = false;
     }
     assertEquals("incorrect number of elements", numExpectedElements, 
info.length());

Reply via email to