HDFS 冗餘資料塊的自動刪除

2021-07-15 06:59:49 字數 618 閱讀 3339

在日常維護hadoop集群的過程中發現這樣一種情況:

某個節點由於網路故障或者datanode程序死亡,被namenode判定為死亡,hdfs馬上自動開始資料塊的容錯拷貝;

當該節點重新新增到集群中時,由於該節點上的資料其實並沒有損壞,所以造成了hdfs上某些block的備份數超過了設定的備份數。

通過觀察發現,這些多餘的資料塊經過很長的一段時間才會被完全刪除掉,那麼這個時間取決於什麼呢?

該時間的長短跟資料塊報告的間隔時間有關。datanode會定期將當前該結點上所有的block資訊報告給namenode,

引數dfs.blockreport.intervalmsec就是控制這個報告間隔的引數。

hdfs-site.xml檔案中有乙個引數:

dfs.blockreport.intervalmsec

3600000

determines block reporting interval in milliseconds.

其中3600000為預設設定,3600000毫秒,即1個小時,也就是說,塊報告的時間間隔為1個小時,所以經過了很長時間這些多餘的塊才被刪除掉。

通過實際測試發現,當把該引數調整的稍小一點的時候(60秒),多餘的資料塊確實很快就被刪除了。

HDFS冗餘資料塊的自動刪除

在日常維護hadoop集群的過程中發現這樣一種情況 某個節點由於網路故障或者datanode程序死亡,被namenode判定為死亡,hdfs馬上自動開始資料塊的容錯拷貝 當該節點重新新增到集群中時,由於該節點上的資料其實並沒有損壞,所以造成了hdfs上某些block的備份數超過了設定的備份數。通過觀...

HDFS冗餘資料塊的自動刪除

hdfs冗餘資料塊的自動刪除 在日常維護hadoop集群的過程中發現這樣一種情況 某個節點由於網路故障或者datanode程序死亡,被namenode判定為死亡,hdfs馬上自動開始資料塊的容錯拷貝 當該節點重新新增到集群中時,由於該節點上的資料其實並沒有損壞,所以造成了hdfs上某些block的備...

HDFS冗餘資料塊的自動刪除

在日常維護hadoop集群的過程中發現這樣一種情況 某個節點由於網路故障或者datanode程序死亡,被namenode判定為死亡,hdfs馬上自動開始資料塊的容錯拷貝 當該節點重新新增到集群中時,由於該節點上的資料其實並沒有損壞,所以造成了hdfs上某些block的備份數超過了設定的備份數。通過觀...