hadoop集群在運行一段時間后,總是會出現某台機器的磁盤使用率特別高,有的使用率特別低,針對這種情況,hadoop提供了balancer工具調整磁盤負載
使用命令:start-balancer.sh -threshold 1
影響hadoop balance工具的幾個參數:
-threshold 默認設置:10,參數取值范圍:0-100,參數含義:判斷集群是否平衡的目標參數,每一個 datanode 存儲使用率和集群總存儲使用率的差值都應該小於這個閥值 ,理論上,該參數設置的越小,整個集群就越平衡,但是在線上環境中,hadoop集群在進行balance時,還在並發的進行數據的寫入和刪除,所以有可能無法到達設定的平衡參數值。
dfs.balance.bandwidthPerSec 默認設置:1048576(1 M/S),參數含義:設置balance工具在運行中所能占用的帶寬,設置的過大可能會造成mapred運行緩慢
由於需要經常執行這個,我們可以把它加入到linux的定時任務中,每天或每幾個小時執行一次
創建文件hdfs_balancer_cron.cron
# 每隔6小時平衡hdfs數據,creator:huqiang
* */6 * * * hdfs_balancer.sh
創建hdfs_balancer.sh
#平衡hdfs占用空間
hdfs dfsadmin -setBalancerBandwidth 67108864
sleep 3s
start-balancer.sh -threshold 1
執行 crontab hdfs_balancer_cron.cron
