HDFS Block负载平衡器:Balancer

本文介绍了HDFS中数据不均匀分布的问题及解决方案——Balancer工具。Balancer通过分析block信息,在DataNode之间平衡数据,确保各节点利用率与集群利用率之间的差异不超过预设阈值。详细阐述了Balancer的运行命令,包括配置平衡阈值、指定参与或排除的DataNode、设置数据传输带宽等。此外,还讲解了如何调整阈值来更精确地控制数据平衡过程。

1. 背景

HDFS数据可能并不总是在DataNode之间均匀分布。一个常见的原因是向现有群集中添加了新的DataNode。HDFS提供了一个Balancer程序,分析block放置信息并且在整个DataNode节点之间平衡数据,直到被视为平衡为止。

所谓的平衡指的是每个DataNode的利用率(节点上已用空间与节点总容量之比)与集群的利用率(集群上已用空间与集群总容量的比)相差不超过给定阈值百分比。 平衡器无法在单个DataNode上的各个卷之间进行平衡。
平衡前和平衡后对比图

2 . 命令行配置和运行

在这里插入图片描述

-threshold  10                 	//集群平衡的条件,datanode间磁盘使用率相差阈值,区间选择:0~100
-policy datanode               	//平衡策略,默认为datanode, 如果datanode平衡,则集群已平衡。
-exclude  -f  /tmp/ip1.txt     //默认为空,指定该部分ip不参与balance, -f:指定输入为文件
-include  -f  /tmp/ip2.txt     //默认为空,只允许该部分ip参与balance,-f:指定输入为文件
-idleiterations  5             	//迭代 5

2.1 设置平衡数据传输带宽

命令:**hdfs dfsadmin -setBalancerBandwidth  newbandwidth**

其中newbandwidth是每个DataNode在平衡操作期间可以使用的最大网络带宽量,以每秒字节数为单位。

比如:hdfs dfsadmin -setBalancerBandwidth 104857600 

2.2 默认运行balancer

命令:hdfs balancer

此时将会以默认参数进行数据块的平衡操作。

2.3 修改阈值运行balancer

命令:hdfs balancer -threshold 5

ncer

命令:hdfs balancer -threshold 5

Balancer将以阈值5%运行(默认值10%),这意味着程序将确保每个DataNode上的磁盘使用量与群集中的总体使用量相差不超过5%。例如,如果集群中所有DataNode的总体使用率是集群磁盘总存储容量的40%,则程序将确保每个DataNode的磁盘使用率在该DataNode磁盘存储容量的35%至45%之间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我:yueda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值