瀏覽代碼

HDFS-10186. DirectoryScanner: Improve logs by adding full path of both actual and expected block directories. Contributed by Rakesh R

Tsz-Wo Nicholas Sze 9 年之前
父節點
當前提交
bccc28914b

+ 7 - 5
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DirectoryScanner.java

@@ -902,8 +902,7 @@ public class DirectoryScanner implements Runnable {
             break;
           }
         }
-        verifyFileLocation(blockFile.getParentFile(), bpFinalizedDir,
-            blockId);
+        verifyFileLocation(blockFile, bpFinalizedDir, blockId);
         report.add(new ScanInfo(blockId, blockFile, metaFile, vol));
       }
       return report;
@@ -913,12 +912,15 @@ public class DirectoryScanner implements Runnable {
      * Verify whether the actual directory location of block file has the
      * expected directory path computed using its block ID.
      */
-    private void verifyFileLocation(File actualBlockDir,
+    private void verifyFileLocation(File actualBlockFile,
         File bpFinalizedDir, long blockId) {
       File blockDir = DatanodeUtil.idToBlockDir(bpFinalizedDir, blockId);
-      if (actualBlockDir.compareTo(blockDir) != 0) {
+      if (actualBlockFile.getParentFile().compareTo(blockDir) != 0) {
+        File expBlockFile = new File(blockDir, actualBlockFile.getName());
         LOG.warn("Block: " + blockId
-            + " has to be upgraded to block ID-based layout");
+            + " has to be upgraded to block ID-based layout. "
+            + "Actual block file path: " + actualBlockFile
+            + ", expected block file path: " + expBlockFile);
       }
     }