Hadoop 裡的 fsck 指令,可檢查 HDFS 裡的檔案 (file),是否有 corrupt (毀損) 或資料遺失,並產生 HDFS 檔案系統的整體健康報告。報告內容,包括:
Total blocks (區塊的總個數)、Average block replication (平均副本個數)、Corrupt blocks、遺失的區塊個數、...等等。
-------------------------
指令以下:
舊版:
hadoop fsck /
新版:
hdfs fsck /
hdfs fsck --help
hdfs fsck / -files -blocks -locations
(可用來找出哪些是有遺失區塊的檔案,以及哪些區塊是放在哪臺資料節點上)html
圖 1
-------------------------
若健康則顯示:
Status: HEALTHY
如有毀損則顯示:
Status: CORRUPT
-------------------------
Hadoop 的 fsck 不像 Linux 的 fsck,前者預設是不具備破壞性的,不會去修正檢查到的錯誤,所以可天天執行以作檢查。fsck 是隻跟 metadata 有關的操做,其須要的資訊,均可從 NameNode 取得,所以沒必要和 cluster 全部的 NameNode 溝通。但其 RPC (遠端程序呼叫) 次數可能較高,所以建議在離峯時間來進行檢查。
CCAH 證照 (CCA-500) 會考到這個指令的用途,但不會考細部的功能及參數,只要知道 fsck 大概的功能便可。
-------------------------
參考書籍:
[1] Hadoop Operations: A Guide for Developers and Administrators, ch二、ch10
http://shop.oreilly.com/product/0636920025085.doapache
Commands Guide:
https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html#fsck
ide