中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hadoop維護實戰-設置hdfs副本數 dfs.replication

發布時間:2020-07-29 19:07:01 來源:網絡 閱讀:16981 作者:zlfwmm 欄目:大數據

Hadoop維護實戰 設置hdfs副本數 dfs.replication

有個臨時應用,使用臨時調配的機器,機器磁盤差別數十倍。

在使用hadoop存儲數據時導致小磁盤機器使用率達80%多,而大磁盤機器使用不過才10%多一點。


明顯的hadoop集群各datanode空間使用率很不均衡,需要重新balance。于是想到了hdfs的均衡器balancer。

sbin/start-balancer.sh -threshold 10

但是在執行hdfs的balancer時會自動退出,不執行,也沒有發現Error或者Warning。

但在out文件中可以看到一些信息:

balancer已經計算出要移動的數據量,但是就是沒有移動,只是提示:

No block has been moved for 5 iterations. Exiting...


原來hadoop balancer在進行轉移block的時候是會判斷的:

 * <p>The balancer automatically exits when any of the following five  

 * conditions is satisfied: 

 * <ol> 

 * <li>The cluster is balanced; 

 * <li>No block can be moved; 

 * <li>No block has been moved for five consecutive(連續) iterations; 

 * <li>An IOException occurs while communicating with the namenode; 

 * <li>Another balancer is running. 

 * </ol> 

 * 下面5種情況會導致Balance操作的失敗 

 * 1、整個集群已經達到平衡狀態 

 * 2、經過計算發現沒有可以被移動的block塊 

 * 3、在連續5次的迭代中,沒有block塊被移動 

 * 4、當datanode節點與namenode節點通信的時候,發生IO異常 

 * 5、已經存在一個Balance操作 

顯然是第三點問題了,log里顯示執行了5次迭代但都每移動,應該是多副本的原因,迭代的block在大磁盤機器上都已經存在,那邊都已經存在了,所以balancer移動進程就退出了。



不能執行均衡器了,那只有減少副本數了。

修改hdfs的副本數,首先想到的是修改hdfs-site.xml中的dfs.replication參數,默認為3,開始時設置成了2,現在索性修改為1,然后重啟datanode命令:sbin/hadoop-daemon.sh start datanode

但似乎沒有起作用,數據量沒有變化,按理說應該大量數據減少才對啊。這又是為什么呢?

首先 dfs.replication這個參數是個client參數,即node level參數。需要在每臺datanode上設置。

一個文件,上傳到hdfs上時指定的是幾個副本就是幾個。以后你修改了副本數,對已經上傳了的文件也不會起作用。可以在上傳文件的同時指定創建的副本數。

如果你只有3個datanode,但是你卻指定副本數為4,是不會生效的,因為每個datanode上只能存放一個副本。


啊,原來是這樣,那就看下現在HDFS的副本數,并把它們都修改執行下,是不是有相應的hadoop shell命令呢?


Hadoop Commands和FileSystem Shell

http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/CommandsManual.html

http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/FileSystemShell.html


執行 hadoop fsck /  查看整個目錄的備份數分布,輸出結果如下:

        Default replication factor  2

        Average block replication 2.38


修改hdfs文件備份系數:hadoop dfs -setrep [-R] <path> 如果有-R將修改子目錄文件的性質。

hadoop dfs -setrep -w 1 -R /user/hadoop/dir1 就是把目錄下所有文件備份系數設置為1.

這個需要一些時間,感覺會掃描所有指定目錄下的文件。


修改完已經存儲的文件后,記得要修改以后放入的數據副本數,這個就要看client端了,如果client端有設置,一定要修改。


上面的都執行后如果還是不均衡,此時可以再執行hdfs的均衡器balancer。


個人感覺以上的只是出現問題時的一個解決方案,期望不要出現這樣的問題,畢竟數據量大了操作會有很大的影響的。

我們應該對dfs.replication的數值做出很好的規劃,盡量避免需要降低該數值的情況出現。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

本溪| 廉江市| 张家界市| 青神县| 垫江县| 双峰县| 滦平县| 松原市| 丽江市| 镇远县| 泰顺县| 酒泉市| 漯河市| 渭南市| 乌拉特后旗| 惠东县| 澎湖县| 翼城县| 周宁县| 蓬安县| 阿合奇县| 常山县| 新郑市| 叙永县| 姚安县| 宜兰县| 安新县| 乐亭县| 太原市| 谢通门县| 凯里市| 义马市| 凉城县| 于田县| 建始县| 邢台县| 名山县| 武强县| 揭阳市| 朝阳区| 芜湖县|