Ver Fonte

YARN-10697. Resources are displayed in bytes in UI for schedulers other than capacity. Contributed by Bilwa S T.

(cherry picked from commit 174f3a96b10a0ab0fd8aed1b0f904ca5f0c3f268)
Jim Brennan há 4 anos atrás
pai
commit
0fcb2f28ce

+ 15 - 1
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java

@@ -31,6 +31,7 @@ import org.apache.hadoop.classification.InterfaceStability;
 import org.apache.hadoop.classification.InterfaceStability.Evolving;
 import org.apache.hadoop.classification.InterfaceStability.Stable;
 import org.apache.hadoop.classification.InterfaceStability.Unstable;
+import org.apache.hadoop.util.StringUtils;
 import org.apache.hadoop.yarn.api.ApplicationMasterProtocol;
 import org.apache.hadoop.yarn.api.protocolrecords.ResourceTypes;
 import org.apache.hadoop.yarn.api.records.impl.LightWeightResource;
@@ -470,9 +471,13 @@ public abstract class Resource implements Comparable<Resource> {
 
   @Override
   public String toString() {
+    return getFormattedString(String.valueOf(getMemorySize()));
+  }
+
+  private String getFormattedString(String memory) {
     StringBuilder sb = new StringBuilder();
 
-    sb.append("<memory:").append(getMemorySize()).append(", vCores:")
+    sb.append("<memory:").append(memory).append(", vCores:")
         .append(getVirtualCores());
 
     for (int i = 2; i < resources.length; i++) {
@@ -490,6 +495,15 @@ public abstract class Resource implements Comparable<Resource> {
     return sb.toString();
   }
 
+  /**
+   * This method is to get memory in terms of KB|MB|GB.
+   * @return string containing all resources
+   */
+  public String getFormattedString() {
+    return getFormattedString(
+        StringUtils.byteDesc(getMemorySize() * 1024 * 1024));
+  }
+
   @Override
   public int hashCode() {
     final int prime = 47;

+ 6 - 6
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/MetricsOverviewTable.java

@@ -83,13 +83,13 @@ public class MetricsOverviewTable extends HtmlBlock {
     } else {
       allocatedContainers = clusterMetrics.getContainersAllocated();
       usedResources = Resource.newInstance(
-          clusterMetrics.getAllocatedMB() * BYTES_IN_MB,
+          clusterMetrics.getAllocatedMB(),
           (int) clusterMetrics.getAllocatedVirtualCores());
       totalResources = Resource.newInstance(
-          clusterMetrics.getTotalMB() * BYTES_IN_MB,
+          clusterMetrics.getTotalMB(),
           (int) clusterMetrics.getTotalVirtualCores());
       reservedResources = Resource.newInstance(
-          clusterMetrics.getReservedMB() * BYTES_IN_MB,
+          clusterMetrics.getReservedMB(),
           (int) clusterMetrics.getReservedVirtualCores());
     }
 
@@ -121,9 +121,9 @@ public class MetricsOverviewTable extends HtmlBlock {
                 )
             ).
         td(String.valueOf(allocatedContainers)).
-        td(usedResources.toString()).
-        td(totalResources.toString()).
-        td(reservedResources.toString()).
+        td(usedResources.getFormattedString()).
+        td(totalResources.getFormattedString()).
+        td(reservedResources.getFormattedString()).
         td(String.valueOf(clusterMetrics.getUtilizedMBPercent())).
         td(String.valueOf(clusterMetrics.getUtilizedVirtualCoresPercent())).
         __().