自学内容网 自学内容网

HDFS Disk Balancer 介绍&使用

一、介绍

一句话介绍:用于 HDFS DataNode 单节点内多个数据盘数据均衡。
官网介绍如下:

Diskbalancer is a command line tool that distributes data evenly on all disks of a datanode. This tool is different from Balancer which takes care of cluster-wide data balancing. Data can have uneven spread between disks on a node due to several reasons. This can happen due to large amount of writes and deletes or due to a disk replacement. This tool operates against a given datanode and moves blocks from one disk to another. [1]

Diskbalancer 是一个命令行工具,用于在数据节点的所有磁盘上均匀分布数据。这个工具与 Balancer 不同,Balancer 负责整个集群的数据平衡。由于多种原因,数据在节点的磁盘之间可能分布不均匀。这可能是由于大量的写入和删除,或者由于磁盘替换引起的。该工具针对给定的数据节点操作,并将数据块从一个磁盘移动到另一个磁盘。

传送门: HDFS Diskbalancer 官方文档


二、配置

dfs.disk.balancer.enabled = true 默认开启,此功能需要 Hadoop 版本大于等于 3.0。

如需显式配置如下:

hdfs-site.xml 文件中添加:

<property>
   <name>dfs.disk.balancer.enabled</name>
   <value>true</value>
</property>

对于 CDH 配置,可以在 HDFS 服务的高级配置代码段中添加以上内容。


三、使用

使用命令:

hdfs diskbalancer

输出帮助信息:

valid commands are plan | execute | query | cancel | report

3.1 创建平衡计划 - plan

hdfs diskbalancer -plan cdh-01.magic.com \
  -bandwidth 100 \
  -maxerror 5 \
  -thresholdPercentage 5 \
  -out /data/tmp/disk-balance/cdh01

参数介绍:

  • -bandwidth:平衡带宽,单位 MB/s,默认值为 10。
  • -maxerror:错误重试次数,默认值为 5。
  • -thresholdPercentage:平衡阈值,默认值为 10,即磁盘占用率大小相差 ≤ 10% 则认为是平衡的。
  • -out:计划输出路径,注意该路径为 HDFS 路径,且路径需要为空。

执行输出:
命令执行后会提示生成的计划 JSON 文件路径,例如:
/data/tmp/disk-balance/cdh01/cdh-01.magic.com.plan.json


3.2 执行计划 - execute

hdfs diskbalancer -execute /data/tmp/disk-balance/cdh01/cdh-01.magic.com.plan.json

3.3 查看计划状态 - query

hdfs diskbalancer -query cdh-01.magic.com

常见状态:

  • PLAN_UNDER_PROGRESS:计划处理中。
  • PLAN_DONE:计划处理完成。

3.4 取消执行计划 - cancel

hdfs diskbalancer -cancel /data/tmp/disk-balance/cdh01/cdh-01.magic.com.plan.json

3.5 查看执行的报告信息 - report

hdfs diskbalancer -report -node cdh-01.magic.com

其他格式:

hdfs diskbalancer -fs http://namenode.uri -report -node <file://> | [<DataNodeID|IP|Hostname>,...]
hdfs diskbalancer -fs http://namenode.uri -report -top <topnum>

参考资料

[1] HDFS Diskbalancer 官方文档


原文地址:https://blog.csdn.net/Gentle_Guan/article/details/145265357

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!