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.
*/