修改hadoop的備份係數dfs.replication



Hadoop中常常需要增加新的節點,或者變更備份係數。在完成這些操作後,往往出現數據未自動備份,或者數據節點不可用的情況。本文就討論一下這個問題。

Hadoop的備份係數是指每個block在hadoop集羣中有幾份,係數越高,冗餘性越好,佔用存儲也越多。備份係數在hdfs-site.xml中定義,默認值爲3.

如何變更備份係數?

首先stop-all.sh停止節點,修改master節點的hdfs-site.xml文件,設置dfs.relication值爲目標值。啓動hadoop集羣。

查看文件的備份係數:hadoop dfs -ls [filename] 結果行中的第二列是備份係數 (注:文件夾信息存儲在namenode節點上,所以沒有備份,故文件夾的備份係數是橫槓)

在操作後會發現,以前文件的備份係數仍是原來的值。原來hadoop並不會自動的按照新的備份係數調整,我們需要手動完成。

查看hadoop集羣的備份冗餘情況:hadoop fsck / 我很喜歡的命令,可以方便的看到各種類型block所佔比例。

我們發現Average block replication的值仍然爲舊值,所以我們需要修改hdfs中文件的備份係數。

修改hdfs文件備份係數:hadoop dfs -setrep [-R] 如果有-R將修改子目錄文件的性質。hadoop dfs -setrep -w 3 -R /user/hadoop/dir1 就是把目錄下所有文件備份係數設置爲3.

如果再fsck時候出錯,往往是由於某些文件的備份不正常導致的,可以用hadoop的balancer工具修復

自動負載均衡hadoop文件:hadoop balancer

查看各節點的磁盤佔用情況 hadoop dfsadmin -report

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章