内容纲要
概要描述
本文描述在TDH9.x中,如何使用disk balancer工具,进行datanode disk之间的磁盘均衡
详细描述
HDFS disk balancer与HDFS Balancer是不同的: HDFS disk balancer针对给定的DataNode进行操作,并将块从一个磁盘移动到另一个磁盘,是DataNode内部数据在不同磁盘间平衡;HDFS Balancer平衡了DataNode节点之间的分布。
使用disk balancer确认dfs.disk.balancer.enabled是否为true,不配置的情况下也默认为true
1 确认磁盘不均衡的节点, 对该节点生成计划
hdfs diskbalancer -plan node1.mycluster.com
-out //控制计划文件的输出位置
-bandwidth //设置用于运行Disk Balancer的最大带宽。默认带宽10 MB/s。
–thresholdPercentage //定义磁盘开始参与数据重新分配或平衡操作的值。默认的thresholdPercentage值为10%,这意味着仅当磁盘包含的数据比理想存储值多10%或更少时,磁盘才用于平衡操作。
本案例以该节点为例
生成执行计划
hdfs diskbalancer -plan
-out //控制计划文件的输出位置
-bandwidth //设置用于运行Disk Balancer的最大带宽。默认带宽10 MB/s。
–thresholdPercentage //定义磁盘开始参与数据重新分配或平衡操作的值。默认的thresholdPercentage值为10%,这意味着仅当磁盘包含的数据比理想存储值多10%或更少时,磁盘才用于平衡操作。
-maxerror //它允许用户在中止移动步骤之前为两个磁盘之间的移动操作指定要忽略的错误数。
-v //详细模式,指定此选项将强制plan命令在stdout上显示计划的摘要。
-fs //此选项指定要使用的NameNode。如果未指定,则Disk Balancer将使用配置中的默认NameNode。
可以看到执行计划生成在红框部分
这个计划是生成在hdfs上的
2 执行计划
hdfs diskbalancer -execute /system/diskbalancer/2025-May-08-17-31-35/sw-hbs-25.inesa.com.plan.json
3 查询计划执行情况
dfs diskbalancer -query
4 取消计划
hdfs diskbalancer -cancel /system/diskbalancer/2025-May-08-17-31-35/sw-hbs-25.inesa.com.plan.json
5 根据步骤3查看到PLAN_UNDER_PROGRESS
默认移动的带宽是10M,可以观察一下磁盘使用率是否有下降