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 74b4e799d81..ec4715c7ee2 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 @@ -66,6 +66,7 @@ static final String Q_END = "left:101%"; static final String Q_GIVEN = "left:0%;background:none;border:1px dashed #BFBFBF"; + static final String Q_AUTO_CREATED = "background:#F4F0CB"; static final String Q_OVER = "background:#FFA333"; static final String Q_UNDER = "background:#5BD75B"; static final String ACTIVE_USER = "background:#FFFF00"; // Yellow highlight @@ -283,9 +284,16 @@ public void render(Block html) { absMaxCap = partitionQueueCapsInfo.getAbsoluteMaxCapacity() / 100; absUsedCap = partitionQueueCapsInfo.getAbsoluteUsedCapacity() / 100; + boolean isAutoCreatedLeafQueue = info.isLeafQueue() ? + ((CapacitySchedulerLeafQueueInfo) info).isAutoCreatedLeafQueue() + : false; + + String Q_WIDTH = width(absMaxCap * Q_MAX_WIDTH); LI> li = ul. li(). - a(_Q).$style(width(absMaxCap * Q_MAX_WIDTH)). + a(_Q).$style(isAutoCreatedLeafQueue? join( Q_AUTO_CREATED, ";", + Q_WIDTH) + : Q_WIDTH). $title(join("Absolute Capacity:", percent(absCap))). span().$style(join(Q_GIVEN, ";font-size:1px;", width(absCap/absMaxCap))). __('.').__(). @@ -297,7 +305,7 @@ public void render(Block html) { __(join(percent(used), " used")).__(); csqinfo.qinfo = info; - if (info.getQueues() == null) { + if (info.isLeafQueue()) { li.ul("#lq").li().__(LeafQueueInfoBlock.class).__().__(); li.ul("#lq").li().__(QueueUsersInfoBlock.class).__().__(); } else { @@ -406,6 +414,8 @@ public void render(Block html) { __("Max Capacity").__(). span().$class("qlegend ui-corner-all").$style(ACTIVE_USER). __("Users Requesting Resources").__(). + span().$class("qlegend ui-corner-all").$style(Q_AUTO_CREATED). + __("Auto Created Queues").__(). __(); float used = 0; 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/CapacitySchedulerLeafQueueInfo.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/CapacitySchedulerLeafQueueInfo.java index 7dcdf582225..32bae468389 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/CapacitySchedulerLeafQueueInfo.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/CapacitySchedulerLeafQueueInfo.java @@ -26,7 +26,12 @@ import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceUsage; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity + .AutoCreatedLeafQueue; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue; + +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity + .ManagedParentQueue; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.QueueCapacities; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo; @@ -48,6 +53,7 @@ protected boolean preemptionDisabled; protected String defaultNodeLabelExpression; protected int defaultPriority; + protected boolean isAutoCreatedLeafQueue; @XmlTransient protected String orderingPolicyInfo; @@ -81,6 +87,10 @@ .getPartitionResourceUsageInfo(RMNodeLabelsManager.NO_LABEL) .getAMLimit(); } + + if ( q instanceof AutoCreatedLeafQueue) { + isAutoCreatedLeafQueue = true; + } } @Override @@ -153,4 +163,8 @@ public String getDefaultNodeLabelExpression() { public int getDefaultApplicationPriority() { return defaultPriority; } + + public boolean isAutoCreatedLeafQueue() { + return isAutoCreatedLeafQueue; + } } 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 22705cc6c56..7872d1bdbf7 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 @@ -200,4 +200,8 @@ public QueueCapacitiesInfo getCapacities() { public ResourcesInfo getResources() { return resources; } + + public boolean isLeafQueue() { + return getQueues() == null; + } }