hdfs磁盘balance

文章介绍了如何在Hadoop3之后的版本中管理HDFS节点的磁盘平衡,包括创建、执行、查询和取消平衡计划的命令,以及提供了一个自动化平衡脚本的示例。通过`hdfsdiskbalancer`工具进行操作,并强调需使用hdfs用户执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hdfs节点内部磁盘balance,在hadoop3之后是支持的了
默认是开启的,参数dfs.disk.balancer.enabled

以下命令执行需要用hdfs用户

## 创建balance计划
 hdfs diskbalancer -plan node1
 ##执行banance计划
hdfs diskbalancer -execute /system/diskbalancer/nodename.plan.json

##查看执行的情况
hdfs diskbalancer -query node1

## 取消执行计划
hdfs diskbalancer -cancel node1.plan.json

##查看banalnce执行的report
#hdfs diskbalancer -fs hdfs://namenode:8020 -report -node  node1


附一个balance脚本

#!/bin/bash
Balance_node=$1
#echo $Balance_node
Balance_Time=`date +%Y-%m-%d-%h`
Balance_Path=$(cd "$(dirname "$0")";pwd)

kinit -kt /etc/hadoop/hdfs.keytab hdfs/`hostname -f`

if [[ -z $1 ]];then
        echo " please add balance node.Like this:---  hdfs_disk_balance.sh node1"

else
        Node_Hostname=` cat /etc/hosts|grep $Balance_node|awk '{print $2}'`
        hdfs diskbalancer -plan $Node_Hostname >>$Balance_Path/$Balance_Time'_'$Balance_node'_balance_info'
        Plan_json=`cat $Balance_Path/$Balance_Time'_'$Balance_node'_balance_info'|grep -A1 'Writing plan to'|grep '.json'`
        hdfs diskbalancer -execute $Plan_json
        hdfs diskbalancer -fs hdfs://namenode:8020 -report -node $Node_Hostname >>$Balance_Path/$Balance_Time'_'$Balance_node'_balance_info'
fi


##Plan_json=`hdfs diskbalancer -plan $Node_Hostname|grep -A1 'Writing plan to'|grep '.json'`

##查看执行情况
#hdfs diskbalancer -query node1


##取消计划任务
#hdfs diskbalancer -cancel node1.plan.json

参考链接
https://hadoop.apache.org/docs/r3.3.1/hadoop-project-dist/hadoop-hdfs/HDFSDiskbalancer.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值