diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/FairSchedulerPage.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/FairSchedulerPage.java index aca3e44..be955ed 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/FairSchedulerPage.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/FairSchedulerPage.java @@ -44,7 +44,8 @@ static final float Q_MAX_WIDTH = 0.8f; static final float Q_STATS_POS = Q_MAX_WIDTH + 0.05f; static final String Q_END = "left:101%"; - static final String Q_GIVEN = "left:0%;background:none;border:1px dashed rgba(0,0,0,0.25)"; + static final String Q_GIVEN = "left:0%;background:none;border:1px solid rgba(0,0,0,1)"; + static final String Q_DYNAMIC_FS = "left:0%;background:none;border:1px dashed rgba(0,0,0,1)"; static final String Q_OVER = "background:rgba(255, 140, 0, 0.8)"; static final String Q_UNDER = "background:rgba(50, 205, 50, 0.8)"; @@ -96,15 +97,20 @@ public void render(Block html) { for (FairSchedulerQueueInfo info : subQueues) { float capacity = info.getMaxResourcesFraction(); float fairShare = info.getFairShareMemoryFraction(); + float dynamicFairShare = info.getDynamicFairShareMemoryFraction(); float used = info.getUsedMemoryFraction(); LI> li = ul. li(). a(_Q).$style(width(capacity * Q_MAX_WIDTH)). - $title(join("Fair Share:", percent(fairShare))). + $title(join(join("Guaranteed Fair Share:", percent(fairShare)), + join(" Current Fair Share:", percent(dynamicFairShare)))). span().$style(join(Q_GIVEN, ";font-size:1px;", width(fairShare/capacity))). _('.')._(). + span().$style(join(Q_DYNAMIC_FS, ";font-size:1px;", + width(dynamicFairShare/capacity))). + _('.')._(). span().$style(join(width(used/capacity), - ";font-size:1px;left:0%;", used > fairShare ? Q_OVER : Q_UNDER)). + ";font-size:1px;left:0%;", used > dynamicFairShare ? Q_OVER : Q_UNDER)). _('.')._(). span(".q", info.getQueueName())._(). span().$class("qstats").$style(left(Q_STATS_POS)). @@ -156,7 +162,9 @@ public void render(Block html) { li().$style("margin-bottom: 1em"). span().$style("font-weight: bold")._("Legend:")._(). span().$class("qlegend ui-corner-all").$style(Q_GIVEN). - _("Fair Share")._(). + _("Guaranteed Fair Share")._(). + span().$class("qlegend ui-corner-all").$style(Q_DYNAMIC_FS). + _("Current Fair Share")._(). span().$class("qlegend ui-corner-all").$style(Q_UNDER). _("Used")._(). span().$class("qlegend ui-corner-all").$style(Q_OVER). diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/FairSchedulerQueueInfo.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/FairSchedulerQueueInfo.java index 2c1bc47..96a66e9 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/FairSchedulerQueueInfo.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/FairSchedulerQueueInfo.java @@ -46,6 +46,8 @@ @XmlTransient private float fractionMemFairShare; @XmlTransient + private float fractionMemDynamicFairShare; + @XmlTransient private float fractionMemMinShare; @XmlTransient private float fractionMemMaxShare; @@ -54,6 +56,7 @@ private ResourceInfo maxResources; private ResourceInfo usedResources; private ResourceInfo fairResources; + private ResourceInfo dynamicFairResources; private ResourceInfo clusterResources; private String queueName; @@ -77,6 +80,7 @@ public FairSchedulerQueueInfo(FSQueue queue, FairScheduler scheduler) { clusterResources.getMemory(); fairResources = new ResourceInfo(queue.getFairShare()); + dynamicFairResources = new ResourceInfo(queue.getDynamicFairShare()); minResources = new ResourceInfo(queue.getMinShare()); maxResources = new ResourceInfo(queue.getMaxShare()); maxResources = new ResourceInfo( @@ -84,6 +88,8 @@ public FairSchedulerQueueInfo(FSQueue queue, FairScheduler scheduler) { scheduler.getClusterResource())); fractionMemFairShare = (float)fairResources.getMemory() / clusterResources.getMemory(); + fractionMemDynamicFairShare = (float) dynamicFairResources.getMemory() + / clusterResources.getMemory(); fractionMemMinShare = (float)minResources.getMemory() / clusterResources.getMemory(); fractionMemMaxShare = (float)maxResources.getMemory() / clusterResources.getMemory(); @@ -107,6 +113,9 @@ public float getFairShareMemoryFraction() { return fractionMemFairShare; } + public float getDynamicFairShareMemoryFraction() { + return fractionMemDynamicFairShare; + } /** * Returns the fair share of this queue in megabytes. */