Hadoop-之数据均衡操作
数据的不均衡可能发生在集群的不同节点上,也可能发生在同个节点的不同磁盘上,我们为了作数据的均衡是一定会设计到数据的迁移与传输的。可能是跨节点,也可能是跨磁盘。
1 节点之间的均衡
hadoop默认提供数据均衡的shell脚本,访问路径如下
/opt/module/hadoop-2.7.7/sbin/start-balancer.sh
切记在集群空闲的时候进行操作,不然的话rpc跨节点网络传输很考费资源,可能造成集群任务长时间获取不到资源而运行失败。
# start-banlancer,sh
start-balancer.sh -threshold 10
# 对于默认的参数10,代表的是集群中哥哥节点的磁盘空间利用率相差不超过10%,可根据实际情况操作
如需停止均衡操作执行以下命令
stop-balancer.sh
2 磁盘之间的均衡
磁盘之间的均衡主要有以下几种操作选项
- 生成执行计划
# 生成一个shufang102.plan.json文件,类似于kafka的分区重分配生成的计划
hdfs diskbalancer -plan shufang102
- 执行均衡计划
hdfs diskbalancer -execute shufang102.plan.json
- 查看当前均衡任务的执行情况
hdfs diskbalancer -query shufang102
- 取消均衡任务
hdfs diskbalancer -cancel shufang102.plan.json