遷移hdfs節點過程中,退役datanode節點,出現這個問題:
使用命令檢查block報告
hdfs fsck /
返回結果截圖如下:
參數說明:
Total size : hdfs集羣存儲大小,不包括複本大小。如:75423236058649 B (字節)。(字節->KB->m->G->TB,75423236058649/1024/1024/1024/1024=68.59703358591014TB)
Total blocks (validated) : 總共的塊數量,不包括複本。(5363690 (avg. block size 14061818 B) (Total open file blocks (not validated): 148),計算: 14061818 *5363690=75423232588420 集羣的容量大小,不包括複本的)
Number of data-nodes : datanode的節點數量
Number of racks : 機架數量
Default replication factor : 默認的複製因子
Average block replication : 當前塊的平均複製數,如果小 default replication factor,則有塊丟失
Under-replicated blocks : 正在複製塊數量
Mis-replicated blocks : 正複製的缺少複製塊的數量
Missing replicas : 缺少複製塊的數量,通常情況下Under-replicated blocks\Mis-replicated blocks\Missing replicas 都爲0,則集羣健康,如果不爲0,則缺失塊了
Corrupt blocks : 壞塊的數量,這個值不爲0,則說明當前集羣有不可恢復的塊,即數據有丟失了
當下架節點時Under-replicated blocks\Mis-replicated blocks\Missing replicas,這三個參數會顯示當前,需要補的塊的數量,集羣會自動補全,當三個參數都爲0時,則集羣塊的複製塊完全了。
如下截圖:
hadoop fsck / -openforwrite | egrep -v '^\.+$' | egrep "MISSING|OPENFORWRITE" | grep -o "/[^ ]*" | sed -e "s/:$//" | xargs -i hadoop fs -rmr {};