فهرست منبع

Fix for HADOOP-154 (fixed in other relevant places, too).

git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk@396706 13f79535-47bb-0310-9956-ffa450edef68
Andrzej Bialecki 19 سال پیش
والد
کامیت
64f8343204
1فایلهای تغییر یافته به همراه11 افزوده شده و 7 حذف شده
  1. 11 7
      src/java/org/apache/hadoop/dfs/DFSck.java

+ 11 - 7
src/java/org/apache/hadoop/dfs/DFSck.java

@@ -20,7 +20,6 @@ import java.io.BufferedOutputStream;
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
 import java.io.IOException;
-import java.lang.reflect.Method;
 import java.net.InetSocketAddress;
 import java.net.Socket;
 import java.util.ArrayList;
@@ -495,7 +494,9 @@ public class DFSck {
 
     /** Return the actual replication factor. */
     public float getReplicationFactor() {
-      return (float)(totalBlocks * replication + overReplicatedBlocks - underReplicatedBlocks) / (float)totalBlocks;
+      if (totalBlocks != 0)
+        return (float)(totalBlocks * replication + overReplicatedBlocks - underReplicatedBlocks) / (float)totalBlocks;
+      else return 0.0f;
     }
 
     /** Return the number of under-replicated blocks. Note: missing blocks are not counted here.*/
@@ -560,7 +561,8 @@ public class DFSck {
       StringBuffer res = new StringBuffer();
       res.append("Status: " + (isHealthy() ? "HEALTHY" : "CORRUPT"));
       res.append("\n Total size:\t" + totalSize + " B");
-      res.append("\n Total blocks:\t" + totalBlocks + " (avg. block size "
+      res.append("\n Total blocks:\t" + totalBlocks);
+      if (totalBlocks > 0) res.append(" (avg. block size "
               + (totalSize / totalBlocks) + " B)");
       res.append("\n Total dirs:\t" + totalDirs);
       res.append("\n Total files:\t" + totalFiles);
@@ -571,11 +573,13 @@ public class DFSck {
         res.append("\n  MISSING SIZE:\t\t" + missingSize + " B");
         res.append("\n  ********************************");
       }
-      res.append("\n Over-replicated blocks:\t" + overReplicatedBlocks
-              + " (" + ((float)(overReplicatedBlocks * 100) / (float)totalBlocks)
+      res.append("\n Over-replicated blocks:\t" + overReplicatedBlocks);
+      if (totalBlocks > 0) res.append(" ("
+              + ((float)(overReplicatedBlocks * 100) / (float)totalBlocks)
               + " %)");
-      res.append("\n Under-replicated blocks:\t" + underReplicatedBlocks
-              + " (" + ((float)(underReplicatedBlocks * 100) / (float)totalBlocks)
+      res.append("\n Under-replicated blocks:\t" + underReplicatedBlocks);
+      if (totalBlocks > 0) res.append(" ("
+              + ((float)(underReplicatedBlocks * 100) / (float)totalBlocks)
               + " %)");
       res.append("\n Target replication factor:\t" + replication);
       res.append("\n Real replication factor:\t" + getReplicationFactor());