YARN-7420. YARN UI changes to depict auto created queues. (Suma Shivaprasad via wangda)
Change-Id: I8039d3772a191ddede132cd1f8b08a8ca2e275b7
This commit is contained in:
parent
b38643c9a8
commit
f548bfffbd
|
@ -66,6 +66,7 @@ class CapacitySchedulerPage extends RmView {
|
||||||
static final String Q_END = "left:101%";
|
static final String Q_END = "left:101%";
|
||||||
static final String Q_GIVEN =
|
static final String Q_GIVEN =
|
||||||
"left:0%;background:none;border:1px dashed #BFBFBF";
|
"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_OVER = "background:#FFA333";
|
||||||
static final String Q_UNDER = "background:#5BD75B";
|
static final String Q_UNDER = "background:#5BD75B";
|
||||||
static final String ACTIVE_USER = "background:#FFFF00"; // Yellow highlight
|
static final String ACTIVE_USER = "background:#FFFF00"; // Yellow highlight
|
||||||
|
@ -299,9 +300,16 @@ class CapacitySchedulerPage extends RmView {
|
||||||
absMaxCap = partitionQueueCapsInfo.getAbsoluteMaxCapacity() / 100;
|
absMaxCap = partitionQueueCapsInfo.getAbsoluteMaxCapacity() / 100;
|
||||||
absUsedCap = partitionQueueCapsInfo.getAbsoluteUsedCapacity() / 100;
|
absUsedCap = partitionQueueCapsInfo.getAbsoluteUsedCapacity() / 100;
|
||||||
|
|
||||||
|
boolean isAutoCreatedLeafQueue = info.isLeafQueue() ?
|
||||||
|
((CapacitySchedulerLeafQueueInfo) info).isAutoCreatedLeafQueue()
|
||||||
|
: false;
|
||||||
|
|
||||||
|
String Q_WIDTH = width(absMaxCap * Q_MAX_WIDTH);
|
||||||
LI<UL<Hamlet>> li = ul.
|
LI<UL<Hamlet>> li = ul.
|
||||||
li().
|
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))).
|
$title(join("Absolute Capacity:", percent(absCap))).
|
||||||
span().$style(join(Q_GIVEN, ";font-size:1px;", width(absCap/absMaxCap))).
|
span().$style(join(Q_GIVEN, ";font-size:1px;", width(absCap/absMaxCap))).
|
||||||
__('.').__().
|
__('.').__().
|
||||||
|
@ -313,7 +321,7 @@ class CapacitySchedulerPage extends RmView {
|
||||||
__(join(percent(used), " used")).__();
|
__(join(percent(used), " used")).__();
|
||||||
|
|
||||||
csqinfo.qinfo = info;
|
csqinfo.qinfo = info;
|
||||||
if (info.getQueues() == null) {
|
if (info.isLeafQueue()) {
|
||||||
li.ul("#lq").li().__(LeafQueueInfoBlock.class).__().__();
|
li.ul("#lq").li().__(LeafQueueInfoBlock.class).__().__();
|
||||||
li.ul("#lq").li().__(QueueUsersInfoBlock.class).__().__();
|
li.ul("#lq").li().__(QueueUsersInfoBlock.class).__().__();
|
||||||
} else {
|
} else {
|
||||||
|
@ -422,6 +430,8 @@ class CapacitySchedulerPage extends RmView {
|
||||||
__("Max Capacity").__().
|
__("Max Capacity").__().
|
||||||
span().$class("qlegend ui-corner-all").$style(ACTIVE_USER).
|
span().$class("qlegend ui-corner-all").$style(ACTIVE_USER).
|
||||||
__("Users Requesting Resources").__().
|
__("Users Requesting Resources").__().
|
||||||
|
span().$class("qlegend ui-corner-all").$style(Q_AUTO_CREATED).
|
||||||
|
__("Auto Created Queues").__().
|
||||||
__();
|
__();
|
||||||
|
|
||||||
float used = 0;
|
float used = 0;
|
||||||
|
|
|
@ -27,6 +27,8 @@ import javax.xml.bind.annotation.XmlTransient;
|
||||||
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
|
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
|
||||||
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.QueueResourceQuotas;
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.QueueResourceQuotas;
|
||||||
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceUsage;
|
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.LeafQueue;
|
||||||
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.QueueCapacities;
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.QueueCapacities;
|
||||||
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo;
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo;
|
||||||
|
@ -49,6 +51,7 @@ public class CapacitySchedulerLeafQueueInfo extends CapacitySchedulerQueueInfo {
|
||||||
protected boolean preemptionDisabled;
|
protected boolean preemptionDisabled;
|
||||||
protected String defaultNodeLabelExpression;
|
protected String defaultNodeLabelExpression;
|
||||||
protected int defaultPriority;
|
protected int defaultPriority;
|
||||||
|
protected boolean isAutoCreatedLeafQueue;
|
||||||
|
|
||||||
@XmlTransient
|
@XmlTransient
|
||||||
protected String orderingPolicyInfo;
|
protected String orderingPolicyInfo;
|
||||||
|
@ -82,6 +85,10 @@ public class CapacitySchedulerLeafQueueInfo extends CapacitySchedulerQueueInfo {
|
||||||
.getPartitionResourceUsageInfo(RMNodeLabelsManager.NO_LABEL)
|
.getPartitionResourceUsageInfo(RMNodeLabelsManager.NO_LABEL)
|
||||||
.getAMLimit();
|
.getAMLimit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( q instanceof AutoCreatedLeafQueue) {
|
||||||
|
isAutoCreatedLeafQueue = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -155,4 +162,8 @@ public class CapacitySchedulerLeafQueueInfo extends CapacitySchedulerQueueInfo {
|
||||||
public int getDefaultApplicationPriority() {
|
public int getDefaultApplicationPriority() {
|
||||||
return defaultPriority;
|
return defaultPriority;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isAutoCreatedLeafQueue() {
|
||||||
|
return isAutoCreatedLeafQueue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -219,4 +219,8 @@ public class CapacitySchedulerQueueInfo {
|
||||||
public ResourceInfo getMaxEffectiveCapacity(){
|
public ResourceInfo getMaxEffectiveCapacity(){
|
||||||
return maxEffectiveCapacity;
|
return maxEffectiveCapacity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isLeafQueue() {
|
||||||
|
return getQueues() == null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue