一、hadoop balance工具的用法:
啟動balance:
bin/start-balancer.sh -threshold 5
停止balance:
bin/stop-balancer.sh
二、影響hadoop balance工具的幾個參數:
-threshold默認設置:10,參數取值范圍:0-100,參數含義:判斷集群是否平衡的目標參數,每一個datanode存儲使用率和集群總存儲使用率的差值都應該小於這個閥值,理論上,該參數設置的越小,整個集群就越平衡,但是線上環境中,hadoop集群在進行balance時,還在並發的進行數據的吸入和刪除,所以有可能無法到達設定的平衡參數值。
dfs.balance.bandwidthPerSec默認設置:1048576(1M/S),參數含義:設置balance工具的運行中所能占用的帶寬,設置的過大可能會造成mapred運行緩慢。
設置該參數需要修改hdfs-site.xml文件:
<property> <name>dfs.balance.bandwidthPerSec</name> <value>20971520</value> <description> Specifies the maximum bandwidth that each datanode can utilize for the balancing purpose in term of the number of bytes per second. </description> </property>
上面是設置傳輸速率為20M/S。
三、hadoop balance工具其它特點:
balance工具的運行過程中,迭代的將文件塊從高使用率的datanode移動到低使用率的datanode上,每一個迭代過程中移動的數據量不超過下面兩個值的較小者:10G或者指定閥值*容量,且每次迭代不超過20分鍾。每次迭代結束后,balance工具將更新該datanode的文件塊分布情況。
