背景
集群中的数据在做跨集群传输(distcp指令)数据,数据在进入新集群中由于存储空间不够需要将该部分数据默认的3副本降为2副本。
方法
副本降级
hdfs dfs -setrep 2 -R -w /XXX
将HDFS下的/XXX目录下的数据文件设为双副本,其中其中/XXX是指定的路径,-R参数则表示包含子目录。
此时我的数据传输仍在进行,新进入的数据仍是以3副本做存储,且仍存在存储空间不足的风险,所以需要再次执行该指令。
副本降低后会发现各DataNode存储极不均衡
开启数据均衡命令
start-balancer.sh -threshold 5
对于参数5,代表的是集群中各个节点的磁盘空间利用率相差不超过5%,可根据实际情况进行调整。
停止数据均衡命令
stop-balancer.sh