我有一个复制因子= 3 的三节点 hadoop 集群。
每个系统的存储目录是/app/hadoop/tmp/dfs/。
每个datanode系统的硬盘容量为221GB。
HDFS的有效数据为62GB,复制62*3= 186GB。
现在的问题是,即使我在 660 GB 集群上只有 186 GB 的数据,我的存储空间也不足:HDFS 显示可用空间存在巨大差异:
数据节点1 =7.47 GB
数据节点2 =17.7 GB
数据节点3 =143 GB
为了确保这些空间被 hadoop 本地存储使用,我在每个数据节点上运行了这个命令。对于数据节点1
du -h --max-depth=1 /app/hadoop/tmp/
63G /app/hadoop/tmp/dfs
139G /app/hadoop/tmp/mapred
201G /app/hadoop/tmp/
对于数据节点2
du -h --max-depth=1 /app/hadoop/tmp/
126G /app/hadoop/tmp/mapred
62G /app/hadoop/tmp/dfs
188G /app/hadoop/tmp/
对于datanode3 du -h --max-depth=1 /app/hadoop/tmp/dfs/ 62G /app/hadoop/tmp/dfs/data 62G /app/hadoop/tmp/dfs/
这里datanode1已经使用了201GB的存储空间。 我尝试了负载平衡器,但它显示集群是平衡的。这是输出。
start-balancer.sh
starting balancer, logging to /usr/lib/hadoop-0.20/logs/hadoop-ocpe-balancer-blrkec241933d.out
Time Stamp Iteration# Bytes Already Moved Bytes Left To Move Bytes Being Moved
The cluster is balanced. Exiting...
Balancing took 622.0 milliseconds
最近我的一个datanode宕机了几天,修复后出现了这个问题。如何平衡负载?