YARN-6752. Display reserved resources in web UI per application (Contributed by Abdullah Yousufi via Daniel Templeton)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/06159858 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/06159858 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/06159858 Branch: refs/heads/HDFS-10285 Commit: 06159858868a9cbeefc31bc6be5ae48a59cc8a6c Parents: f484a6f Author: Daniel Templeton <[email protected]> Authored: Sun Jul 9 19:02:31 2017 +0900 Committer: Daniel Templeton <[email protected]> Committed: Sun Jul 9 19:02:31 2017 +0900 ---------------------------------------------------------------------- .../apache/hadoop/yarn/server/webapp/dao/AppInfo.java | 14 ++++++++++++++ .../webapp/FairSchedulerAppsBlock.java | 6 ++++++ .../server/resourcemanager/webapp/RMAppsBlock.java | 8 ++++++++ .../server/resourcemanager/webapp/dao/AppInfo.java | 13 +++++++++++++ .../resourcemanager/webapp/TestRMWebServicesApps.java | 2 +- 5 files changed, 42 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/06159858/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/AppInfo.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/AppInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/AppInfo.java index ff4519d..ac2f8da 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/AppInfo.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/AppInfo.java @@ -61,6 +61,8 @@ public class AppInfo { protected int priority; private long allocatedCpuVcores; private long allocatedMemoryMB; + private long reservedCpuVcores; + private long reservedMemoryMB; protected boolean unmanagedApplication; private String appNodeLabelExpression; private String amNodeLabelExpression; @@ -101,6 +103,10 @@ public class AppInfo { .getUsedResources().getVirtualCores(); allocatedMemoryMB = app.getApplicationResourceUsageReport() .getUsedResources().getMemorySize(); + reservedCpuVcores = app.getApplicationResourceUsageReport() + .getReservedResources().getVirtualCores(); + reservedMemoryMB = app.getApplicationResourceUsageReport() + .getReservedResources().getMemorySize(); } } progress = app.getProgress() * 100; // in percent @@ -160,6 +166,14 @@ public class AppInfo { return allocatedMemoryMB; } + public long getReservedCpuVcores() { + return reservedCpuVcores; + } + + public long getReservedMemoryMB() { + return reservedMemoryMB; + } + public float getProgress() { return progress; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/06159858/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/FairSchedulerAppsBlock.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/FairSchedulerAppsBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/FairSchedulerAppsBlock.java index 41b5fe7..b7a7a93 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/FairSchedulerAppsBlock.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/FairSchedulerAppsBlock.java @@ -95,6 +95,8 @@ public class FairSchedulerAppsBlock extends HtmlBlock { th(".runningcontainer", "Running Containers"). th(".allocatedCpu", "Allocated CPU VCores"). th(".allocatedMemory", "Allocated Memory MB"). + th(".reservedCpu", "Reserved CPU VCores"). + th(".reservedMemory", "Reserved Memory MB"). th(".progress", "Progress"). th(".ui", "Tracking UI")._()._(). tbody(); @@ -142,6 +144,10 @@ public class FairSchedulerAppsBlock extends HtmlBlock { .valueOf(appInfo.getAllocatedVCores())).append("\",\"") .append(appInfo.getAllocatedMB() == -1 ? "N/A" : String .valueOf(appInfo.getAllocatedMB())).append("\",\"") + .append(appInfo.getReservedVCores() == -1 ? "N/A" : String + .valueOf(appInfo.getReservedVCores())).append("\",\"") + .append(appInfo.getReservedMB() == -1 ? "N/A" : String + .valueOf(appInfo.getReservedMB())).append("\",\"") // Progress bar .append("<br title='").append(percent) .append("'> <div class='").append(C_PROGRESSBAR).append("' title='") http://git-wip-us.apache.org/repos/asf/hadoop/blob/06159858/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMAppsBlock.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMAppsBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMAppsBlock.java index 6a18296..61674d2 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMAppsBlock.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMAppsBlock.java @@ -66,6 +66,8 @@ public class RMAppsBlock extends AppsBlock { .th(".runningcontainer", "Running Containers") .th(".allocatedCpu", "Allocated CPU VCores") .th(".allocatedMemory", "Allocated Memory MB") + .th(".reservedCpu", "Reserved CPU VCores") + .th(".reservedMemory", "Reserved Memory MB") .th(".queuePercentage", "% of Queue") .th(".clusterPercentage", "% of Cluster") .th(".progress", "Progress") @@ -146,6 +148,12 @@ public class RMAppsBlock extends AppsBlock { .append(app.getAllocatedMemoryMB() == -1 ? "N/A" : String.valueOf(app.getAllocatedMemoryMB())) .append("\",\"") + .append(app.getReservedCpuVcores() == -1 ? "N/A" : String + .valueOf(app.getReservedCpuVcores())) + .append("\",\"") + .append(app.getReservedMemoryMB() == -1 ? "N/A" : + String.valueOf(app.getReservedMemoryMB())) + .append("\",\"") .append(queuePercent) .append("\",\"") .append(clusterPercent) http://git-wip-us.apache.org/repos/asf/hadoop/blob/06159858/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppInfo.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppInfo.java index 45ecced..f11939a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppInfo.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppInfo.java @@ -93,6 +93,8 @@ public class AppInfo { private String amRPCAddress; protected long allocatedMB; protected long allocatedVCores; + protected long reservedMB; + protected long reservedVCores; protected int runningContainers; protected long memorySeconds; protected long vcoreSeconds; @@ -196,8 +198,11 @@ public class AppInfo { .getApplicationResourceUsageReport(); if (resourceReport != null) { Resource usedResources = resourceReport.getUsedResources(); + Resource reservedResources = resourceReport.getReservedResources(); allocatedMB = usedResources.getMemorySize(); allocatedVCores = usedResources.getVirtualCores(); + reservedMB = reservedResources.getMemorySize(); + reservedVCores = reservedResources.getVirtualCores(); runningContainers = resourceReport.getNumUsedContainers(); queueUsagePercentage = resourceReport.getQueueUsagePercentage(); clusterUsagePercentage = resourceReport.getClusterUsagePercentage(); @@ -404,6 +409,14 @@ public class AppInfo { return this.allocatedVCores; } + public long getReservedMB() { + return this.reservedMB; + } + + public long getReservedVCores() { + return this.reservedVCores; + } + public long getPreemptedMB() { return preemptedResourceMB; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/06159858/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesApps.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesApps.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesApps.java index 056f1dd..1cbdec3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesApps.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesApps.java @@ -1528,7 +1528,7 @@ public class TestRMWebServicesApps extends JerseyTestBase { public void verifyAppInfo(JSONObject info, RMApp app, boolean hasResourceReqs) throws JSONException, Exception { - int expectedNumberOfElements = 34 + (hasResourceReqs ? 2 : 0); + int expectedNumberOfElements = 36 + (hasResourceReqs ? 2 : 0); String appNodeLabelExpression = null; String amNodeLabelExpression = null; if (app.getApplicationSubmissionContext() --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
