Browse Source

HDFS-17369. Add uuid into datanode info for NameNodeMXBean (#6521) Contributed by Haiyang Hu.

Reviewed-by: ZanderXu <zanderxu@apache.org>
Signed-off-by: Shilun Fan <slfan1989@apache.org>
huhaiyang 1 năm trước cách đây
mục cha
commit
6464507cd1

+ 4 - 0
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java

@@ -6662,6 +6662,7 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
           .put("infoSecureAddr", node.getInfoSecureAddr())
           .put("xferaddr", node.getXferAddr())
           .put("location", node.getNetworkLocation())
+          .put("uuid", node.getDatanodeUuid())
           .put("lastContact", getLastContact(node))
           .put("usedSpace", getDfsUsed(node))
           .put("adminState", node.getAdminState().toString())
@@ -6715,6 +6716,7 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
           .put("adminState", node.getAdminState().toString())
           .put("xferaddr", node.getXferAddr())
           .put("location", node.getNetworkLocation())
+          .put("uuid", node.getDatanodeUuid())
           .build();
       info.put(node.getXferAddrWithHostname(), innerinfo);
     }
@@ -6737,6 +6739,7 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
           .<String, Object> builder()
           .put("xferaddr", node.getXferAddr())
           .put("location", node.getNetworkLocation())
+          .put("uuid", node.getDatanodeUuid())
           .put("underReplicatedBlocks",
           node.getLeavingServiceStatus().getUnderReplicatedBlocks())
           .put("decommissionOnlyReplicas",
@@ -6767,6 +6770,7 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
           .<String, Object> builder()
           .put("xferaddr", node.getXferAddr())
           .put("location", node.getNetworkLocation())
+          .put("uuid", node.getDatanodeUuid())
           .put("underReplicatedBlocks",
               node.getLeavingServiceStatus().getUnderReplicatedBlocks())
           .put("maintenanceOnlyReplicas",

+ 2 - 1
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNameNodeMXBean.java

@@ -211,7 +211,7 @@ public class TestNameNodeMXBean {
               cluster.getDataNodes().get(3).getDatanodeId());
       decommissionedNode.setDecommissioned();
 
-      // Assert the location field is included in the mxbeanName
+      // Assert the location and uuid field is included in the mxbeanName
       // under different states
       String alivenodeinfo1 = (String) (mbs.getAttribute(mxbeanName,
               "LiveNodes"));
@@ -219,6 +219,7 @@ public class TestNameNodeMXBean {
               (Map<String, Map<String, Object>>) JSON.parse(alivenodeinfo1);
       for (Map<String, Object> liveNode : liveNodes1.values()) {
         assertTrue(liveNode.containsKey("location"));
+        assertTrue(liveNode.containsKey("uuid"));
       }
 
       // get attributes DeadNodes