YARN-6751. Display reserved resources in web UI per queue

(Contributed by Abdullah Yousufi via Daniel Templeton)
This commit is contained in:
Daniel Templeton 2017-06-29 16:52:46 -07:00
parent 441378e7e4
commit ec97519779
3 changed files with 17 additions and 2 deletions

View File

@ -57,6 +57,7 @@ public abstract class FSQueue implements Queue, Schedulable {
private Resource fairShare = Resources.createResource(0, 0);
private Resource steadyFairShare = Resources.createResource(0, 0);
private Resource reservedResource = Resources.createResource(0, 0);
private final String name;
protected final FairScheduler scheduler;
private final YarnAuthorizationProvider authorizer;
@ -161,6 +162,12 @@ public void setMaxShare(Resource maxShare){
this.maxShare = maxShare;
}
public Resource getReservedResource() {
reservedResource.setMemorySize(metrics.getReservedMB());
reservedResource.setVirtualCores(metrics.getReservedVirtualCores());
return reservedResource;
}
@Override
public Resource getMaxShare() {
return maxShare;

View File

@ -75,7 +75,8 @@ protected void render(Block html) {
_("Num Active Applications:", qinfo.getNumActiveApplications()).
_("Num Pending Applications:", qinfo.getNumPendingApplications()).
_("Min Resources:", qinfo.getMinResources().toString()).
_("Max Resources:", qinfo.getMaxResources().toString());
_("Max Resources:", qinfo.getMaxResources().toString()).
_("Reserved Resources:", qinfo.getReservedResources().toString());
int maxApps = qinfo.getMaxApplications();
if (maxApps < Integer.MAX_VALUE) {
ri._("Max Running Applications:", qinfo.getMaxApplications());
@ -103,7 +104,8 @@ protected void render(Block html) {
ResponseInfo ri = info("\'" + qinfo.getQueueName() + "\' Queue Status").
_("Used Resources:", qinfo.getUsedResources().toString()).
_("Min Resources:", qinfo.getMinResources().toString()).
_("Max Resources:", qinfo.getMaxResources().toString());
_("Max Resources:", qinfo.getMaxResources().toString()).
_("Reserved Resources:", qinfo.getReservedResources().toString());
int maxApps = qinfo.getMaxApplications();
if (maxApps < Integer.MAX_VALUE) {
ri._("Max Running Applications:", qinfo.getMaxApplications());

View File

@ -58,6 +58,7 @@ public class FairSchedulerQueueInfo {
private ResourceInfo steadyFairResources;
private ResourceInfo fairResources;
private ResourceInfo clusterResources;
private ResourceInfo reservedResources;
private long pendingContainers;
private long allocatedContainers;
@ -93,6 +94,7 @@ public FairSchedulerQueueInfo(FSQueue queue, FairScheduler scheduler) {
maxResources = new ResourceInfo(
Resources.componentwiseMin(queue.getMaxShare(),
scheduler.getClusterResource()));
reservedResources = new ResourceInfo(queue.getReservedResource());
fractionMemSteadyFairShare =
(float)steadyFairResources.getMemorySize() / clusterResources.getMemorySize();
@ -186,6 +188,10 @@ public ResourceInfo getMaxResources() {
return maxResources;
}
public ResourceInfo getReservedResources() {
return reservedResources;
}
public int getMaxApplications() {
return maxApps;
}