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..0474955 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,10 +44,12 @@
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)";
-
+ static final String GUARANTEED_FAIR_SHARE = "Guaranteed Fair Share";
+ static final String CURRENT_FAIR_SHARE = "Current Fair Share";
@RequestScoped
static class FSQInfo {
FairSchedulerQueueInfo qinfo;
@@ -73,8 +75,8 @@ protected void render(Block html) {
if (maxApps < Integer.MAX_VALUE) {
ri._("Max Running Applications:", qinfo.getMaxApplications());
}
- ri._("Fair Share:", qinfo.getFairShare().toString());
-
+ ri._(GUARANTEED_FAIR_SHARE + ":", qinfo.getFairShare().toString());
+ ri._(CURRENT_FAIR_SHARE + ":", qinfo.getDynamicFairShare().toString());
html._(InfoBlock.class);
// clear the info contents so this queue's info doesn't accumulate into another queue's info
@@ -96,15 +98,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 +163,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..97f28ad 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,10 @@ public float getFairShareMemoryFraction() {
return fractionMemFairShare;
}
+ public float getDynamicFairShareMemoryFraction() {
+ return fractionMemDynamicFairShare;
+ }
+
/**
* Returns the fair share of this queue in megabytes.
*/
@@ -114,6 +124,10 @@ public ResourceInfo getFairShare() {
return fairResources;
}
+ public ResourceInfo getDynamicFairShare() {
+ return dynamicFairResources;
+ }
+
public ResourceInfo getMinResources() {
return minResources;
}