diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NodePage.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NodePage.java index 7005f41..ae9b92d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NodePage.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NodePage.java @@ -75,6 +75,8 @@ protected void render(Block html) { info.isPmemCheckEnabled()) .__("Total VCores allocated for Containers", String.valueOf(info.getTotalVCoresAllocated())) + .__("Resource types", + info.getResourceTypes()) .__("NodeHealthyStatus", info.getHealthStatus()) .__("LastNodeHealthTime", new Date( diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/dao/NodeInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/dao/NodeInfo.java index 32e39cf..33e2de6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/dao/NodeInfo.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/dao/NodeInfo.java @@ -22,11 +22,13 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.hadoop.util.StringUtils; import org.apache.hadoop.util.VersionInfo; import org.apache.hadoop.yarn.server.nodemanager.Context; import org.apache.hadoop.yarn.server.nodemanager.NodeManager; import org.apache.hadoop.yarn.server.nodemanager.ResourceView; import org.apache.hadoop.yarn.util.YarnVersionInfo; +import org.apache.hadoop.yarn.util.resource.ResourceUtils; @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) @@ -41,6 +43,7 @@ protected boolean vmemCheckEnabled; protected boolean pmemCheckEnabled; protected long lastNodeUpdateTime; + protected String resourceTypes; protected boolean nodeHealthy; protected String nodeManagerVersion; protected String nodeManagerBuildVersion; @@ -67,6 +70,8 @@ public NodeInfo(final Context context, final ResourceView resourceView) { this.pmemCheckEnabled = resourceView.isPmemCheckEnabled(); this.totalVCoresAllocatedContainers = resourceView .getVCoresAllocatedForContainers(); + this.resourceTypes = StringUtils.join(", ", + ResourceUtils.getResourcesTypeInfo()); this.nodeHealthy = context.getNodeHealthStatus().getIsNodeHealthy(); this.lastNodeUpdateTime = context.getNodeHealthStatus() .getLastHealthReportTime(); @@ -146,6 +151,10 @@ public boolean isPmemCheckEnabled() { return this.pmemCheckEnabled; } + public String getResourceTypes() { + return this.resourceTypes; + } + public long getNMStartupTime() { return nmStartupTime; } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebServices.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebServices.java index 171834e..531f3be 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebServices.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebServices.java @@ -749,14 +749,15 @@ public void verifyNodesXML(NodeList nodes) throws JSONException, Exception { WebServicesTestUtils.getXmlString(element, "nodeManagerVersionBuiltOn"), WebServicesTestUtils.getXmlString( element, "nodeManagerBuildVersion"), - WebServicesTestUtils.getXmlString(element, "nodeManagerVersion")); + WebServicesTestUtils.getXmlString(element, "nodeManagerVersion"), + WebServicesTestUtils.getXmlString(element, "resourceTypes")); } } public void verifyNodeInfo(JSONObject json) throws JSONException, Exception { assertEquals("incorrect number of elements", 1, json.length()); JSONObject info = json.getJSONObject("nodeInfo"); - assertEquals("incorrect number of elements", 17, info.length()); + assertEquals("incorrect number of elements", 18, info.length()); verifyNodeInfoGeneric(info.getString("id"), info.getString("healthReport"), info.getLong("totalVmemAllocatedContainersMB"), info.getLong("totalPmemAllocatedContainersMB"), @@ -768,7 +769,9 @@ public void verifyNodeInfo(JSONObject json) throws JSONException, Exception { info.getString("hadoopBuildVersion"), info.getString("hadoopVersion"), info.getString("nodeManagerVersionBuiltOn"), info.getString("nodeManagerBuildVersion"), - info.getString("nodeManagerVersion")); + info.getString("nodeManagerVersion"), + info.getString("resourceTypes") + ); } @@ -779,7 +782,8 @@ public void verifyNodeInfoGeneric(String id, String healthReport, long lastNodeUpdateTime, Boolean nodeHealthy, String nodeHostName, String hadoopVersionBuiltOn, String hadoopBuildVersion, String hadoopVersion, String resourceManagerVersionBuiltOn, - String resourceManagerBuildVersion, String resourceManagerVersion) { + String resourceManagerBuildVersion, String resourceManagerVersion, + String resourceTypes) { WebServicesTestUtils.checkStringMatch("id", "testhost.foo.com:8042", id); WebServicesTestUtils.checkStringMatch("healthReport", "Healthy", @@ -811,6 +815,8 @@ public void verifyNodeInfoGeneric(String id, String healthReport, YarnVersionInfo.getBuildVersion(), resourceManagerBuildVersion); WebServicesTestUtils.checkStringMatch("resourceManagerVersion", YarnVersionInfo.getVersion(), resourceManagerVersion); + + assertEquals("memory-mb (unit=Mi), vcores", resourceTypes); } private String getLogContext(String fullMessage) {