liuhongyu 发表于 2016-12-9 09:14:57

hadoop文件存储不均衡的分析

1.       Hadoop是如何判断集群内存储是否均衡的? 
1)  获取集群平均使用率-各个节点使用率的平均值
例如,A、B、C三台机器的DFS Used%依次为0.1%, 0.01%, 13.1%,则平均使用率为(0.1%+0.01%+13.1%)/3 = 4.4%
 
2)  判断节点的使用率与集群平均使用率之间的差值是否在容许范围内,都在范围内,则认为存储平衡(默认的容许范围是10%)
 
2.       Hadoop对上传文件的处理
Hadoop有一个处理原则是,从哪个节点上传的文件,原则上就放在哪个节点,以减少网络I/O,所以基本上所有的数据都存储在了C这台机器上。此外,因为我们配置的备份因子是1,即所有的数据只存储1份,所以,其他两个节点也没有备份数据。
 
3.       分析
根据上述两个前提,我们计算出每个节点使用率与平均使用率4.4%的差值都小于10%,系统认为当前的存储是平衡的。因为所有的文件都是通过C这台机器上传,我们配置的备份因子又是1,即所有的数据只存储1份,所以,大部分文件都在C这台机器上,其他两个节点数据很少。
 
4.       处理
C这台机器上被非DFS文件占用了太多的空间,导致计算出的占用百分比不高,却没有太多空间可用。可以把非DFS文件放在另外的目录下,不占用划分给DFS的目录,这样的百分比就更准确。
修改偏差百分比,调整文件存储。以下命令的含义为修改偏差范围为3%,执行存储平衡(该过程可以和分析任务一起执行)
./start-balancer.sh -threshold 3
页: [1]
查看完整版本: hadoop文件存储不均衡的分析