tomicooler commented on code in PR #5293:
URL: https://github.com/apache/hadoop/pull/5293#discussion_r1251115513
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ClusterMetricsInfo.java:
##########
@@ -103,45 +105,64 @@ public ClusterMetricsInfo(final ResourceScheduler rs) {
this.appsRunning = metrics.getAppsRunning();
this.appsFailed = metrics.getAppsFailed();
this.appsKilled = metrics.getAppsKilled();
-
- this.reservedMB = metrics.getReservedMB();
- this.availableMB = metrics.getAvailableMB();
- this.allocatedMB = metrics.getAllocatedMB();
this.pendingMB = metrics.getPendingMB();
-
- this.reservedVirtualCores = metrics.getReservedVirtualCores();
- this.availableVirtualCores = metrics.getAvailableVirtualCores();
- this.allocatedVirtualCores = metrics.getAllocatedVirtualCores();
this.pendingVirtualCores = metrics.getPendingVirtualCores();
this.containersAllocated = metrics.getAllocatedContainers();
this.containersPending = metrics.getPendingContainers();
this.containersReserved = metrics.getReservedContainers();
+ this.totalMB = new ResourceInfo(rs.getClusterResource()).getMemorySize();
+ this.totalVirtualCores = new
ResourceInfo(rs.getClusterResource()).getvCores();
+
if (rs instanceof CapacityScheduler) {
CapacityScheduler cs = (CapacityScheduler) rs;
- this.totalMB = availableMB + allocatedMB + reservedMB;
- this.totalVirtualCores =
- availableVirtualCores + allocatedVirtualCores + reservedVirtualCores;
// TODO, add support of other schedulers to get total used resources
// across partition.
- if (cs.getRootQueue() != null
- && cs.getRootQueue().getQueueResourceUsage() != null
+ if (cs.getRootQueue() != null &&
cs.getRootQueue().getQueueResourceUsage() != null
&& cs.getRootQueue().getQueueResourceUsage().getAllUsed() != null) {
- totalUsedResourcesAcrossPartition = new ResourceInfo(
- cs.getRootQueue().getQueueResourceUsage().getAllUsed());
- totalClusterResourcesAcrossPartition = new ResourceInfo(
- cs.getClusterResource());
- totalReservedResourcesAcrossPartition = new ResourceInfo(
- cs.getRootQueue().getQueueResourceUsage().getAllReserved());
+ totalUsedResourcesAcrossPartition =
+ new
ResourceInfo(cs.getRootQueue().getQueueResourceUsage().getAllUsed());
+ totalClusterResourcesAcrossPartition = new
ResourceInfo(cs.getClusterResource());
+ totalReservedResourcesAcrossPartition =
+ new
ResourceInfo(cs.getRootQueue().getQueueResourceUsage().getAllReserved());
totalAllocatedContainersAcrossPartition =
((ParentQueue) cs.getRootQueue()).getNumContainers();
crossPartitionMetricsAvailable = true;
+
+ this.allocatedMB = totalUsedResourcesAcrossPartition.getMemorySize();
+ this.allocatedVirtualCores =
totalUsedResourcesAcrossPartition.getvCores();
+
+ this.reservedMB =
totalReservedResourcesAcrossPartition.getMemorySize();
+ this.reservedVirtualCores =
totalReservedResourcesAcrossPartition.getvCores();
+ }
+ this.availableMB = this.totalMB - this.allocatedMB;
+ this.availableVirtualCores = this.totalVirtualCores -
this.allocatedVirtualCores;
+ } else if (rs instanceof FairScheduler) {
+ FairScheduler fs = (FairScheduler) rs;
+
+ if (fs.getQueueManager().getRootQueue() != null) {
Review Comment:
Based on the old todo:
```
// TODO, add support of other schedulers to get total used resources
// across partition.
```
Shouldn't we set the totalUsedResourcesAcrossPartition,
totalClusterResourcesAcrossPartition, totalReservedResourcesAcrossPartition
fields here too?
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ClusterMetricsInfo.java:
##########
@@ -103,45 +105,64 @@ public ClusterMetricsInfo(final ResourceScheduler rs) {
this.appsRunning = metrics.getAppsRunning();
this.appsFailed = metrics.getAppsFailed();
this.appsKilled = metrics.getAppsKilled();
-
- this.reservedMB = metrics.getReservedMB();
- this.availableMB = metrics.getAvailableMB();
- this.allocatedMB = metrics.getAllocatedMB();
this.pendingMB = metrics.getPendingMB();
-
- this.reservedVirtualCores = metrics.getReservedVirtualCores();
- this.availableVirtualCores = metrics.getAvailableVirtualCores();
- this.allocatedVirtualCores = metrics.getAllocatedVirtualCores();
this.pendingVirtualCores = metrics.getPendingVirtualCores();
this.containersAllocated = metrics.getAllocatedContainers();
this.containersPending = metrics.getPendingContainers();
this.containersReserved = metrics.getReservedContainers();
+ this.totalMB = new ResourceInfo(rs.getClusterResource()).getMemorySize();
+ this.totalVirtualCores = new
ResourceInfo(rs.getClusterResource()).getvCores();
+
if (rs instanceof CapacityScheduler) {
CapacityScheduler cs = (CapacityScheduler) rs;
- this.totalMB = availableMB + allocatedMB + reservedMB;
- this.totalVirtualCores =
- availableVirtualCores + allocatedVirtualCores + reservedVirtualCores;
// TODO, add support of other schedulers to get total used resources
// across partition.
- if (cs.getRootQueue() != null
- && cs.getRootQueue().getQueueResourceUsage() != null
+ if (cs.getRootQueue() != null &&
cs.getRootQueue().getQueueResourceUsage() != null
&& cs.getRootQueue().getQueueResourceUsage().getAllUsed() != null) {
- totalUsedResourcesAcrossPartition = new ResourceInfo(
- cs.getRootQueue().getQueueResourceUsage().getAllUsed());
- totalClusterResourcesAcrossPartition = new ResourceInfo(
- cs.getClusterResource());
- totalReservedResourcesAcrossPartition = new ResourceInfo(
- cs.getRootQueue().getQueueResourceUsage().getAllReserved());
+ totalUsedResourcesAcrossPartition =
+ new
ResourceInfo(cs.getRootQueue().getQueueResourceUsage().getAllUsed());
+ totalClusterResourcesAcrossPartition = new
ResourceInfo(cs.getClusterResource());
+ totalReservedResourcesAcrossPartition =
+ new
ResourceInfo(cs.getRootQueue().getQueueResourceUsage().getAllReserved());
totalAllocatedContainersAcrossPartition =
((ParentQueue) cs.getRootQueue()).getNumContainers();
crossPartitionMetricsAvailable = true;
+
+ this.allocatedMB = totalUsedResourcesAcrossPartition.getMemorySize();
+ this.allocatedVirtualCores =
totalUsedResourcesAcrossPartition.getvCores();
+
+ this.reservedMB =
totalReservedResourcesAcrossPartition.getMemorySize();
+ this.reservedVirtualCores =
totalReservedResourcesAcrossPartition.getvCores();
+ }
+ this.availableMB = this.totalMB - this.allocatedMB;
+ this.availableVirtualCores = this.totalVirtualCores -
this.allocatedVirtualCores;
+ } else if (rs instanceof FairScheduler) {
+ FairScheduler fs = (FairScheduler) rs;
+
+ if (fs.getQueueManager().getRootQueue() != null) {
+ FSParentQueue rootQueue = fs.getQueueManager().getRootQueue();
+ this.allocatedMB = rootQueue.getResourceUsage().getMemorySize();
+ this.allocatedVirtualCores =
rootQueue.getResourceUsage().getVirtualCores();
+
+ this.reservedMB = rootQueue.getReservedResource().getMemorySize();
+ this.reservedVirtualCores =
rootQueue.getReservedResource().getVirtualCores();
}
+ this.availableMB = this.totalMB - this.allocatedMB;
Review Comment:
`this.allocatedMB` might not be initialised here
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ClusterMetricsInfo.java:
##########
@@ -103,45 +105,64 @@ public ClusterMetricsInfo(final ResourceScheduler rs) {
this.appsRunning = metrics.getAppsRunning();
this.appsFailed = metrics.getAppsFailed();
this.appsKilled = metrics.getAppsKilled();
-
- this.reservedMB = metrics.getReservedMB();
- this.availableMB = metrics.getAvailableMB();
- this.allocatedMB = metrics.getAllocatedMB();
this.pendingMB = metrics.getPendingMB();
-
- this.reservedVirtualCores = metrics.getReservedVirtualCores();
- this.availableVirtualCores = metrics.getAvailableVirtualCores();
- this.allocatedVirtualCores = metrics.getAllocatedVirtualCores();
this.pendingVirtualCores = metrics.getPendingVirtualCores();
this.containersAllocated = metrics.getAllocatedContainers();
this.containersPending = metrics.getPendingContainers();
this.containersReserved = metrics.getReservedContainers();
+ this.totalMB = new ResourceInfo(rs.getClusterResource()).getMemorySize();
+ this.totalVirtualCores = new
ResourceInfo(rs.getClusterResource()).getvCores();
+
if (rs instanceof CapacityScheduler) {
CapacityScheduler cs = (CapacityScheduler) rs;
- this.totalMB = availableMB + allocatedMB + reservedMB;
- this.totalVirtualCores =
- availableVirtualCores + allocatedVirtualCores + reservedVirtualCores;
// TODO, add support of other schedulers to get total used resources
// across partition.
- if (cs.getRootQueue() != null
- && cs.getRootQueue().getQueueResourceUsage() != null
+ if (cs.getRootQueue() != null &&
cs.getRootQueue().getQueueResourceUsage() != null
&& cs.getRootQueue().getQueueResourceUsage().getAllUsed() != null) {
- totalUsedResourcesAcrossPartition = new ResourceInfo(
- cs.getRootQueue().getQueueResourceUsage().getAllUsed());
- totalClusterResourcesAcrossPartition = new ResourceInfo(
- cs.getClusterResource());
- totalReservedResourcesAcrossPartition = new ResourceInfo(
- cs.getRootQueue().getQueueResourceUsage().getAllReserved());
+ totalUsedResourcesAcrossPartition =
+ new
ResourceInfo(cs.getRootQueue().getQueueResourceUsage().getAllUsed());
+ totalClusterResourcesAcrossPartition = new
ResourceInfo(cs.getClusterResource());
+ totalReservedResourcesAcrossPartition =
+ new
ResourceInfo(cs.getRootQueue().getQueueResourceUsage().getAllReserved());
totalAllocatedContainersAcrossPartition =
((ParentQueue) cs.getRootQueue()).getNumContainers();
crossPartitionMetricsAvailable = true;
+
+ this.allocatedMB = totalUsedResourcesAcrossPartition.getMemorySize();
+ this.allocatedVirtualCores =
totalUsedResourcesAcrossPartition.getvCores();
+
+ this.reservedMB =
totalReservedResourcesAcrossPartition.getMemorySize();
+ this.reservedVirtualCores =
totalReservedResourcesAcrossPartition.getvCores();
+ }
+ this.availableMB = this.totalMB - this.allocatedMB;
+ this.availableVirtualCores = this.totalVirtualCores -
this.allocatedVirtualCores;
+ } else if (rs instanceof FairScheduler) {
+ FairScheduler fs = (FairScheduler) rs;
+
+ if (fs.getQueueManager().getRootQueue() != null) {
+ FSParentQueue rootQueue = fs.getQueueManager().getRootQueue();
+ this.allocatedMB = rootQueue.getResourceUsage().getMemorySize();
+ this.allocatedVirtualCores =
rootQueue.getResourceUsage().getVirtualCores();
+
+ this.reservedMB = rootQueue.getReservedResource().getMemorySize();
+ this.reservedVirtualCores =
rootQueue.getReservedResource().getVirtualCores();
}
+ this.availableMB = this.totalMB - this.allocatedMB;
+ this.availableVirtualCores = this.totalVirtualCores -
this.allocatedVirtualCores;
Review Comment:
`this.allocatedVirtualCores` might not be initialised here
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ClusterMetricsInfo.java:
##########
@@ -103,45 +105,64 @@ public ClusterMetricsInfo(final ResourceScheduler rs) {
this.appsRunning = metrics.getAppsRunning();
this.appsFailed = metrics.getAppsFailed();
this.appsKilled = metrics.getAppsKilled();
-
- this.reservedMB = metrics.getReservedMB();
- this.availableMB = metrics.getAvailableMB();
- this.allocatedMB = metrics.getAllocatedMB();
this.pendingMB = metrics.getPendingMB();
-
- this.reservedVirtualCores = metrics.getReservedVirtualCores();
- this.availableVirtualCores = metrics.getAvailableVirtualCores();
- this.allocatedVirtualCores = metrics.getAllocatedVirtualCores();
this.pendingVirtualCores = metrics.getPendingVirtualCores();
this.containersAllocated = metrics.getAllocatedContainers();
this.containersPending = metrics.getPendingContainers();
this.containersReserved = metrics.getReservedContainers();
+ this.totalMB = new ResourceInfo(rs.getClusterResource()).getMemorySize();
+ this.totalVirtualCores = new
ResourceInfo(rs.getClusterResource()).getvCores();
+
if (rs instanceof CapacityScheduler) {
CapacityScheduler cs = (CapacityScheduler) rs;
- this.totalMB = availableMB + allocatedMB + reservedMB;
- this.totalVirtualCores =
- availableVirtualCores + allocatedVirtualCores + reservedVirtualCores;
// TODO, add support of other schedulers to get total used resources
// across partition.
- if (cs.getRootQueue() != null
- && cs.getRootQueue().getQueueResourceUsage() != null
+ if (cs.getRootQueue() != null &&
cs.getRootQueue().getQueueResourceUsage() != null
&& cs.getRootQueue().getQueueResourceUsage().getAllUsed() != null) {
- totalUsedResourcesAcrossPartition = new ResourceInfo(
- cs.getRootQueue().getQueueResourceUsage().getAllUsed());
- totalClusterResourcesAcrossPartition = new ResourceInfo(
- cs.getClusterResource());
- totalReservedResourcesAcrossPartition = new ResourceInfo(
- cs.getRootQueue().getQueueResourceUsage().getAllReserved());
+ totalUsedResourcesAcrossPartition =
+ new
ResourceInfo(cs.getRootQueue().getQueueResourceUsage().getAllUsed());
+ totalClusterResourcesAcrossPartition = new
ResourceInfo(cs.getClusterResource());
+ totalReservedResourcesAcrossPartition =
+ new
ResourceInfo(cs.getRootQueue().getQueueResourceUsage().getAllReserved());
totalAllocatedContainersAcrossPartition =
((ParentQueue) cs.getRootQueue()).getNumContainers();
crossPartitionMetricsAvailable = true;
+
+ this.allocatedMB = totalUsedResourcesAcrossPartition.getMemorySize();
+ this.allocatedVirtualCores =
totalUsedResourcesAcrossPartition.getvCores();
+
+ this.reservedMB =
totalReservedResourcesAcrossPartition.getMemorySize();
+ this.reservedVirtualCores =
totalReservedResourcesAcrossPartition.getvCores();
+ }
+ this.availableMB = this.totalMB - this.allocatedMB;
Review Comment:
`this.allocatedMB` might not be initialised here
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ClusterMetricsInfo.java:
##########
@@ -103,45 +105,64 @@ public ClusterMetricsInfo(final ResourceScheduler rs) {
this.appsRunning = metrics.getAppsRunning();
this.appsFailed = metrics.getAppsFailed();
this.appsKilled = metrics.getAppsKilled();
-
- this.reservedMB = metrics.getReservedMB();
- this.availableMB = metrics.getAvailableMB();
- this.allocatedMB = metrics.getAllocatedMB();
this.pendingMB = metrics.getPendingMB();
-
- this.reservedVirtualCores = metrics.getReservedVirtualCores();
- this.availableVirtualCores = metrics.getAvailableVirtualCores();
- this.allocatedVirtualCores = metrics.getAllocatedVirtualCores();
this.pendingVirtualCores = metrics.getPendingVirtualCores();
this.containersAllocated = metrics.getAllocatedContainers();
this.containersPending = metrics.getPendingContainers();
this.containersReserved = metrics.getReservedContainers();
+ this.totalMB = new ResourceInfo(rs.getClusterResource()).getMemorySize();
+ this.totalVirtualCores = new
ResourceInfo(rs.getClusterResource()).getvCores();
+
if (rs instanceof CapacityScheduler) {
CapacityScheduler cs = (CapacityScheduler) rs;
- this.totalMB = availableMB + allocatedMB + reservedMB;
- this.totalVirtualCores =
- availableVirtualCores + allocatedVirtualCores + reservedVirtualCores;
// TODO, add support of other schedulers to get total used resources
// across partition.
- if (cs.getRootQueue() != null
- && cs.getRootQueue().getQueueResourceUsage() != null
+ if (cs.getRootQueue() != null &&
cs.getRootQueue().getQueueResourceUsage() != null
&& cs.getRootQueue().getQueueResourceUsage().getAllUsed() != null) {
- totalUsedResourcesAcrossPartition = new ResourceInfo(
- cs.getRootQueue().getQueueResourceUsage().getAllUsed());
- totalClusterResourcesAcrossPartition = new ResourceInfo(
- cs.getClusterResource());
- totalReservedResourcesAcrossPartition = new ResourceInfo(
- cs.getRootQueue().getQueueResourceUsage().getAllReserved());
+ totalUsedResourcesAcrossPartition =
+ new
ResourceInfo(cs.getRootQueue().getQueueResourceUsage().getAllUsed());
+ totalClusterResourcesAcrossPartition = new
ResourceInfo(cs.getClusterResource());
+ totalReservedResourcesAcrossPartition =
+ new
ResourceInfo(cs.getRootQueue().getQueueResourceUsage().getAllReserved());
totalAllocatedContainersAcrossPartition =
((ParentQueue) cs.getRootQueue()).getNumContainers();
crossPartitionMetricsAvailable = true;
+
+ this.allocatedMB = totalUsedResourcesAcrossPartition.getMemorySize();
+ this.allocatedVirtualCores =
totalUsedResourcesAcrossPartition.getvCores();
+
+ this.reservedMB =
totalReservedResourcesAcrossPartition.getMemorySize();
+ this.reservedVirtualCores =
totalReservedResourcesAcrossPartition.getvCores();
+ }
+ this.availableMB = this.totalMB - this.allocatedMB;
+ this.availableVirtualCores = this.totalVirtualCores -
this.allocatedVirtualCores;
Review Comment:
`this.allocatedVirtualCores` might not be initialised here
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]