zsyzhou 发表于 2017-12-18 10:49:43

hadoop磁盘空间不均衡的解决办法

  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
  参考:http://blog.csdn.net/azhao_dn/article/details/7741666
页: [1]
查看完整版本: hadoop磁盘空间不均衡的解决办法