|
@@ -59,6 +59,7 @@ import org.apache.hadoop.yarn.api.records.ApplicationReport;
|
|
|
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
|
|
|
import org.apache.hadoop.yarn.api.records.NodeReport;
|
|
|
import org.apache.hadoop.yarn.api.records.QueueInfo;
|
|
|
+import org.apache.hadoop.yarn.api.records.Resource;
|
|
|
import org.apache.hadoop.yarn.api.records.YarnClusterMetrics;
|
|
|
import org.apache.hadoop.yarn.conf.YarnConfiguration;
|
|
|
import org.apache.hadoop.yarn.exceptions.YarnRemoteException;
|
|
@@ -67,10 +68,12 @@ import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider;
|
|
|
import org.apache.hadoop.yarn.ipc.RPCUtil;
|
|
|
import org.apache.hadoop.yarn.ipc.YarnRPC;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.RMAuditLogger.AuditConstants;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.resource.Resources;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppEvent;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppEventType;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNode;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNodeReport;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.YarnScheduler;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.security.authorize.RMPolicyProvider;
|
|
|
import org.apache.hadoop.yarn.server.security.ApplicationACLsManager;
|
|
@@ -396,10 +399,18 @@ public class ClientRMService extends AbstractService implements
|
|
|
report.setRackName(rmNode.getRackName());
|
|
|
report.setCapability(rmNode.getTotalCapability());
|
|
|
report.setNodeHealthStatus(rmNode.getNodeHealthStatus());
|
|
|
- org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNodeReport schedulerNodeReport = scheduler
|
|
|
- .getNodeReport(rmNode.getNodeID());
|
|
|
- report.setUsed(schedulerNodeReport.getUsedResource());
|
|
|
- report.setNumContainers(schedulerNodeReport.getNumContainers());
|
|
|
+
|
|
|
+ SchedulerNodeReport schedulerNodeReport =
|
|
|
+ scheduler.getNodeReport(rmNode.getNodeID());
|
|
|
+ Resource used = Resources.none();
|
|
|
+ int numContainers = 0;
|
|
|
+ if (schedulerNodeReport != null) {
|
|
|
+ used = schedulerNodeReport.getUsedResource();
|
|
|
+ numContainers = schedulerNodeReport.getNumContainers();
|
|
|
+ }
|
|
|
+ report.setUsed(used);
|
|
|
+ report.setNumContainers(numContainers);
|
|
|
+
|
|
|
return report;
|
|
|
}
|
|
|
|