最近CDH磁盘空间不够了,于是每个节点都扩容了1T空间,挂载之后发现新磁盘虽然在写入,但是数据量较少,所以需要在每个节点内部的新旧磁盘之间进去重新平衡。如果是开源的hadoop也可以去修改hdfs-site.xml的配置,后续执行命令即可。
注:CDH界面本身有一个命令重平衡,但是那是平衡节点之间的数据的,在这里不起效果。
经过验证操作步骤如下:
1.进入CDH管理平台中的hdfs配置
搜索:hdfs-site.xml 的 HDFS 服务高级配置代码段(安全阀)
添加:
名称:dfs.disk.balancer.enabled
值:true
说明:磁盘重平衡
2.进入到hadoop服务器,对某节点执行以下命令,进行数据重平衡
#1. 生成平衡计划
hdfs diskbalancer -plan cdh-dn03
#2. 执行平衡方案
hdfs diskbalancer -execute /system/diskbalancer/2025-Feb-13-09-02-12/cdh-dn03.plan.json
#3. 开启平衡
hdfs diskbalancer -query cdh-dn03
3.等待较长时间的磁盘平衡
通过命令:
df -h
效果最终可以看到旧磁盘数据明显减少,新磁盘数据变多。