您的位置:首页 > 大数据 > Hadoop

Hdfs存储负载均衡

2017-07-17 13:55 309 查看
环境:cdh5.8

生产环境中,随着数据量的增长,集群进行了扩容,新增节点数据较少。平衡配置还是比较合理的,但是好像一直没有按照配置来,现在是一个1.8的盘,2个3.6的盘。现在1.8使用满了,3.6的使用2.5。

在配置界面搜索“平衡”

重新平衡阈值 :2
重新平衡策略
Balancer Default Group
DataNodeBlockPool
DataNode 平衡带宽 dfs.balance.bandwidthPerSec, dfs.datanode.balance.bandwidthPerSec :10M
可用空间策略平衡的阈值 dfs.datanode.available-space-volume-choosing-policy.balanced-space-threshold : 10G,仅用于“DataNode 卷选择策略”被设置为“可用空间”时。用于控制在 DataNode 卷在被视为失去平衡之前允许 DataNode 卷在可用磁盘空间的字节数方面存在的差异大小。如果所有卷的可用空间都在彼此的该范围内,这些卷将被视为是平衡的,并将按照完全循环的方式完成块分配。
可用空间策略平衡的首选项 dfs.datanode.available-space-volume-choosing-policy.balanced-space-preference-fraction:0.75


当时只看了这几个配置,后来发现还需要设置“DataNode
卷选择策略
”这个策略默认是轮询的,所有1.8会用满
解决办法:设定这个属性
<property>
<name>dfs.datanode.fsdataset.volume.choosing.policy</name>
<value>org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy</value>
</property>


最后在hdfs管理界面点“操作”-->“重新平衡”即可。(备注:hdfs要安装“Balancer”)

附加:上述东西是做datanode之间的数据均衡,datanode内多个磁盘之间的数据均衡需要另外的配置来做:

1.设置dfs.disk.balancer.enabled 为true 

2.hdfs diskbalancer -plan node1(需要均衡的机器) 会生成一个*.plan.json的文件.磁盘平衡执行计划生成的文件内容格式是Json的,并且存储在HDFS之上。在默认情况下,这些文件是存储在 
/system/diskbalancer
 目录下面

3.hdfs diskbalancer -execute /system/diskbalancer/2017-Jul-17-13-30-27/node1.plan.json

4.hdfs diskbalancer -query node1

DONE的时候表示已经执行完毕

 参考:http://www.bkjia.com/yjs/891991.html hadoop2.0的datanode多目录数据副本存放策略
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息