Hadoop官网翻译【HDFS磁盘平衡】

概览

不同于全局不均衡,有些时候仅仅是一个node上的disk数据不均衡。

  • Diskbalancer是一个命令行工具平衡dn上的数据块
  • node上disk不均衡可能是大量的写入,删除或者磁盘替换

全局不均衡使用的是balancer方案进行平衡

架构

Diskbalancer默认是开启的

  • 构建执行计划
    磁盘源,目标磁盘,移动字节数
  • 执行执行计划
    限制每秒复制多少数据

命令

hdfs diskbalancer -plan dn

可以指定参数

  • out
  • brandwidth
  • thresholdPercentage
    操作的是snapshot,所以需要设置一个复制成功率
  • maxerror
  • v
  • fs 指定的namenode
hdfs diskbalancer -plan 127.0.0.1

如果需要进行diskBalancer,那么会生成两个json文件,nodename.before.json 以及nodename.plan.json

日志显示,namenode需要通过rpc端口和datanode通信,调用方法planner.GreedyPlanner

执行

hdfs diskbalancer -execute /system/diskbalancer/nodename.plan.json

异步执行的过程,可以通过query查询进度
可以指定参数 -skipDateCheck

查询

hdfs diskbalancer -query nodename.mycluster.com

query得到的结果如下

  "sourcePath" : "/data/disk2/hdfs/dn",
  "destPath" : "/data/disk3/hdfs/dn",
  "workItem" :
    "startTime" : 1466575335493,
    "secondsElapsed" : 16486,
    "bytesToCopy" : 181242049353,
    "bytesCopied" : 172655116288,
    "errorCount" : 0,
    "errMsg" : null,
    "blocksCopied" : 1287,
    "maxDiskErrors" : 5,
    "tolerancePercent" : 10,
    "bandwidth" : 10

取消

hdfs diskbalancer -cancel /system/diskbalancer/nodename.plan.json

移动一半的数据块怎么处理?启动Datanode时检测状态自恢复吗?

报告

指定node的迁移报告,或者是找到top受益的节点

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

设置

hdfs-site.xml

  • dfs.disk.balancer.enabled
  • dfs.disk.balancer.max.disk.throughputInMBperSec
    指定磁盘间平衡时占用的最大磁盘带宽,默认值10MB/s。在不影响读写性能的情况下可以适当调大。
  • dfs.disk.balancer.max.disk.errors
  • dfs.disk.balancer.block.tolerance.percent
    在每次移动块的过程中,移动块的数量与理想平衡状态之间的偏差容忍值(按百分比计)。一般也设成5。
  • dfs.disk.balancer.plan.threshold.percent
    各个盘之间的平衡阈值
  • dfs.disk.balancer.plan.valid.interval
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值