Hadoop 裡的 fsck 指令

时间:2023-12-18 15:41:14

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
(可用來找出哪些是有遺失區塊的檔案,以及哪些區塊是放在哪台資料節點上)

Hadoop 裡的 fsck 指令
圖 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, ch2、ch10
http://shop.oreilly.com/product/0636920025085.do

Commands Guide:
https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html#fsck