前提: CDH5.10
由于数据量过多,磁盘大小太小,导致磁盘使用率高达90%以上,于是新增磁盘,可问题来了,如何将这两块磁盘上的数据进行均衡呢? hadoop在2.X中已经有相应的方法了(具体哪个版本忘了),本次基于CDH来做
1.设置dfs.disk.balancer.enabled 为true
2.hdfs diskbalancer -plan cdh03(需要均衡的机器) 会生成一个*.plan.json的文件
3.hdfs diskbalancer -execute /system/diskbalancer/2017-Jun-26-10-10-14/cdh04.plan.json
4.hdfs diskbalancer -query cdh04 DONE的时候表示已经执行完毕
备注: 此过程由于数据量相对比较大,磁盘IO、网络IO占用都会比较高,虽然有参数可以配置,如dfs.datanode.balance.bandwidthPerSec,但仍然建议在集群负载不高时进行,特别是生产集群。另外执行时间的长度取决于:数据量、网络IO、磁盘IO及新写入的数据量大小 可同时配置dfs.datanode.fsdataset.volume.choosing.policy(磁盘的选择策略)
参考地址: