Przeglądaj źródła

HDFS-5986. Capture the number of blocks pending deletion on namenode webUI. Contributed by Chris Nauroth.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1575384 13f79535-47bb-0310-9956-ffa450edef68
Chris Nauroth 11 lat temu
rodzic
commit
b1f87bbabd

+ 3 - 0
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt

@@ -532,6 +532,9 @@ Release 2.4.0 - UNRELEASED
     HDFS-6061. Allow dfs.datanode.shared.file.descriptor.path to contain
     multiple entries and fall back when needed (cmccabe)
 
+    HDFS-5986. Capture the number of blocks pending deletion on namenode webUI.
+    (cnauroth)
+
   OPTIMIZATIONS
 
     HDFS-5790. LeaseManager.findPath is very slow when many leases need recovery

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

@@ -5533,6 +5533,7 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
     return blockManager.getScheduledReplicationBlocksCount();
   }
 
+  @Override
   @Metric
   public long getPendingDeletionBlocks() {
     return blockManager.getPendingDeletionBlocksCount();

+ 6 - 0
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/metrics/FSNamesystemMBean.java

@@ -145,4 +145,10 @@ public interface FSNamesystemMBean {
    * Return the maximum number of inodes in the file system
    */
   public long getMaxObjects();
+
+  /**
+   * Number of blocks pending deletion
+   * @return number of blocks pending deletion
+   */
+  long getPendingDeletionBlocks();
 }

+ 1 - 0
hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/dfshealth.html

@@ -160,6 +160,7 @@
   <tr><th><a href="#tab-datanode">Dead Nodes</a></th><td>{NumDeadDataNodes} (Decommissioned: {NumDecomDeadDataNodes})</td></tr>
   <tr><th><a href="#tab-datanode">Decommissioning Nodes</a></th><td>{NumDecommissioningDataNodes}</td></tr>
   <tr><th title="Excludes missing blocks.">Number of Under-Replicated Blocks</th><td>{UnderReplicatedBlocks}</td></tr>
+  <tr><th>Number of Blocks Pending Deletion</th><td>{PendingDeletionBlocks}</td></tr>
 {/fs}
 </table>
 

+ 5 - 1
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFSNamesystemMBean.java

@@ -17,7 +17,7 @@
  */
 package org.apache.hadoop.hdfs.server.namenode;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 import java.lang.management.ManagementFactory;
 import java.util.Map;
@@ -63,6 +63,10 @@ public class TestFSNamesystemMBean {
       assertTrue(stat.containsKey("Snapshots")
           && (Long) stat.get("Snapshots") == fsn.getNumSnapshots());
 
+      Object pendingDeletionBlocks = mbs.getAttribute(mxbeanName,
+        "PendingDeletionBlocks");
+      assertNotNull(pendingDeletionBlocks);
+      assertTrue(pendingDeletionBlocks instanceof Long);
     } finally {
       if (cluster != null) {
         cluster.shutdown();