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

This commit is contained in:
Jim Brennan 2021-03-23 18:57:23 +00:00
parent 75f2d47ff5
commit 34e507cb8c
2 changed files with 21 additions and 7 deletions

View File

@ -30,6 +30,7 @@ import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.classification.InterfaceStability.Evolving;
import org.apache.hadoop.classification.InterfaceStability.Stable;
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;
@ -478,9 +479,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++) {
@ -498,6 +503,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;

View File

@ -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())).
__().