2017-07-18 25 views
1

的Hadoop版之後使用塊池:2.7.3 的Datanode:32 BLOCKSIZE:512米 複製:3一些數據節點仍然顯示清除HDFS

我使用命令 hdfs dfs -rm -r /*

清除在HDFS中的所有數據

清除HDFS羣集後,很少數據節點仍顯示Block pool used,儘管塊爲零。

HDFS WebUI中的截屏 enter image description here

hdfs fsck /輸出如下

Connecting to namenode via http://ip-10-0-2-7:50070/fsck?ugi=ubuntu&path=%2F 
FSCK started by ubuntu (auth:SIMPLE) from /10.0.2.7 for path/at Tue Jul 18 04:34:19 UTC 2017 
Status: HEALTHY 
Total size: 0 B 
Total dirs: 1 
Total files: 0 
Total symlinks:  0 
Total blocks (validated): 0 
Minimally replicated blocks: 0 
Over-replicated blocks: 0 
Under-replicated blocks: 0 
Mis-replicated blocks:  0 
Default replication factor: 3 
Average block replication: 0.0 
Corrupt blocks:  0 
Missing replicas:  0 
Number of data-nodes:  32 
Number of racks:  1 
FSCK ended at Tue Jul 18 04:34:19 UTC 2017 in 1 milliseconds 
The filesystem under path '/' is HEALTHY 

我知道該塊刪除是異步處理,但是,其爲具有Block Pool Used的數據節點不設置爲0,需要花費很多時間才能釋放塊。 任何人都可以幫我弄清楚,爲什麼在這些服務器上,塊刪除速度很慢,或者是因爲塊被使用而導致的其他問題。

+0

您是否在刪除文件時嘗試了skiptrash選項?例如。 hdfs dfs -rm [-skipTrash] URI – vasanth

回答

0

有幾種可能的原因是:

  1. 羣集軟件最近升級使用HDFS Rolling Upgrade功能,並且升級還沒有最後確定。滾動升級期間,文件刪除不會實際刪除DataNode中的底層塊文件。而是維護塊文件,以便操作員選擇回滾升級時,可以將羣集的數據恢復到升級前的狀態。因此,在滾動升級窗口期間,DataNode指標(如「使用的數據塊池」)將繼續顯示消耗的空間。檢查滾動升級是否正在進行的簡單方法是轉到NameNode Web UI。 「概述」選項卡將顯示關於「開始滾動升級」的消息。要完成升級,請運行hdfs dfsadmin -rollingUpgrade。之後,DataNodes將開始刪除塊文件(異步)。
  2. 羣集的用戶使用HDFS Snapshots。快照在創建快照時維護文件系統路徑的狀態。爲了支持這一點,DataNodes可能需要爲先前刪除的文件保留塊,以防用戶選擇讀取包含數據的舊快照。運行hdfs fsck-includeSnapshots參數可以顯示是否有正在使用的快照。
  3. 由於某種I/O錯誤(失敗的磁盤,底層塊文件的權限衝突),DataNode無法刪除塊文件。這不太可能,但是如果出現問題,那麼DataNode日誌將顯示更多信息。