HDFS冗餘數據塊的自動刪除

HDFS冗餘數據塊的自動刪除
在日常維護hadoop集羣的過程中發現這樣一種情況:
 某個節點由於網絡故障或者DataNode進程死亡,被NameNode判定爲死亡,
 HDFS馬上自動開始數據塊的容錯拷貝;
 當該節點重新添加到集羣中時,由於該節點上的數據其實並沒有損壞,
 所以造成了HDFS上某些block的備份數超過了設定的備份數。
 通過觀察發現,這些多餘的數據塊經過很長的一段時間纔會被完全刪除掉,
 那麼這個時間取決於什麼呢?
 該時間的長短跟數據塊報告的間隔時間有關。
 Datanode會定期將當前該結點上所有的BLOCK信息報告給Namenode,
 參數dfs.blockreport.intervalMsec就是控制這個報告間隔的參數。
 
 hdfs-site.xml文件中有一個參數:
<property>
<name>dfs.blockreport.intervalMsec</name>
<value>10000</value>
<description>Determines block reporting interval in milliseconds.</description>
</property>
 其中3600000爲默認設置,3600000毫秒,即1個小時,也就是說,塊報告的時間間隔爲1個小時,所以經過了很長時間這些多餘的塊才被刪除掉。通過實際測試發現,當把該參數調整的稍小一點的時候(60秒),多餘的數據塊確實很快就被刪除了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章