背景:
之前hdfs磁盘使用率已经达到了80%以上,所以对每台机器增加了3块1TB的硬盘,加完硬盘后立马对集群进行了一次Balancer,各个节点数据总量确实得到均衡,但是各个磁盘数据并没有想象中均匀分布,新磁盘的数据很少,大部分数据还是分布在老磁盘上,就像下边

[hdfs@hadoop ~]$ df -hl
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   26G   12G  70% /
tmpfs            32G  8.0K   32G   1% /dev/shm
/dev/vdb1      1008G  738G  220G  78% /data
/dev/vdc1        99G   11G   83G  12% /data2
/dev/vdd1       2.0T  953G  961G  50% /data3
/dev/vde       1008G  174G  784G  19% /data4
/dev/vdf       1008G  175G  782G  19% /data5
/dev/vdg       1008G  171G  787G  18% /data6

查阅文档,Balancer均衡是属于节点级别的,它不管节点下磁盘的数据分布,所以想要磁盘数据进行均衡就需要使用磁盘均衡器diskbalancer;具体步骤如下
1.创建均衡任务并生成计划任务配置文件

[hdfs@hadoop ~]$ hdfs diskbalancer -plan hadoop
19/01/14 21:14:14 INFO planner.GreedyPlanner: Starting plan for Node : hadoop:50020
19/01/14 21:14:14 INFO planner.GreedyPlanner: Disk Volume set 39a804ea-86f0-4da4-af15-b869bca20901 Type : DISK plan completed.
19/01/14 21:14:14 INFO planner.GreedyPlanner: Compute Plan for Node : hadoop:50020 took 16 ms
19/01/14 21:14:14 INFO command.Command: Writing plan to : /system/diskbalancer/2019-Jan-14-21-14-13

2.查看配置文件

[hdfs@hadoop ~]$ hdfs dfs -ls  /system/diskbalancer/2019-Jan-14-21-14-13
Found 2 items
-rw-r--r--   3 hdfs supergroup       7657 2019-01-14 21:14 /system/diskbalancer/2019-Jan-14-21-14-13/hadoop.before.json
-rw-r--r--   3 hdfs supergroup       2460 2019-01-14 21:14 /system/diskbalancer/2019-Jan-14-21-14-13/hadoop.plan.json

3.启动均衡任务

hdfs diskbalancer -execute /system/diskbalancer/2019-Jan-14-21-14-13/hadoop.plan.json

4.查看状态

[hdfs@hadoop ~]$  hdfs diskbalancer -query hadoop:50020
19/01/14 21:17:45 INFO command.Command: Executing "query plan" command.
Plan File: /system/diskbalancer/2019-Jan-14-21-14-13/hadoop.plan.json
Plan ID: 6adb6a6e19fa29731e71ec5e3b05d006759a526b
Result: PLAN_UNDER_PROGRESS

完成后的状态,耗时大约18Hours

[hdfs@hadoop ~]$ df -hl
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   26G   12G  70% /
tmpfs            32G  8.0K   32G   1% /dev/shm
/dev/vdb1      1008G  412G  545G  44% /data
/dev/vdc1        99G   11G   83G  12% /data2
/dev/vdd1       2.0T  790G  1.1T  42% /data3
/dev/vde       1008G  345G  612G  37% /data4
/dev/vdf       1008G  364G  593G  39% /data5
/dev/vdg       1008G  364G  593G  39% /data6

[hdfs@hadoop ~]$  hdfs diskbalancer -query hadoop:50020
19/01/15 13:23:33 INFO command.Command: Executing "query plan" command.
Plan File: /system/diskbalancer/2019-Jan-14-21-14-13/hadoop.plan.json
Plan ID: 6adb6a6e19fa29731e71ec5e3b05d006759a526b
Result: PLAN_DONE

每个需要均衡的节点都要进行如上操作

02-12 22:06