2013-06-13 92 views
7

如果在羣集中更改複製因子(例如從5更改爲3)並且重新啓動羣集,那麼舊文件塊會發生什麼變化?他們是否會被視爲過度複製並被刪除或複製因素僅適用於新文件?這意味着舊文件塊被複制5次,新文件塊(重啓後)被複制3次。 如果羣集未重新啓動,會發生什麼情況?HDFS複製因子更改

+0

有人可以請回答這個問題? – user2470193

回答

11

如果在羣集中更改了複製因子,例如從5更改爲3,並且羣集重新啓動,那麼舊文件塊會發生什麼情況?

現有的/舊的文件塊沒有任何反應。

它們是否會被視爲過度複製並被刪除或複製因子僅適用於新文件?

新的複製因子只適用於新文件,因爲複製因子不是HDFS範圍設置,而是每個文件屬性。

這意味着舊文件塊被複制5次,新文件塊(重啓後)被複制3次。

它的反轉。複製因子設置爲3的現有文件將繼續攜帶3個塊。使用更高默認複製因子創建的新文件將攜帶5個塊。

如果羣集未重新啓動,會發生什麼情況?

如果您重新啓動或不重新啓動羣集,則沒有任何反應。由於屬性是每個文件,並且在創建文件時由客戶端引導,所以不需要重新啓動集羣即可更改此配置。你只需要更新你的客戶端配置。

如果你看一下改變所有的舊文件的複製因子,考慮在運行復制更改器命令:hadoop fs -setrep -R 5 /