hadoop存储目录使用的空间超过了HDFS上的数据总量

hadoop存储目录使用的空间超过了HDFS上的数据总量,hadoop,mapreduce,hdfs,Hadoop,Mapreduce,Hdfs,我有一个三节点hadoop集群,复制因子为3 每个系统的存储目录为/app/hadoop/tmp/dfs/ 每个数据节点系统的硬盘容量为221GB HDFS的有效数据为62GB,其中复制62*3=186GB 现在的问题是,尽管660 GB群集上只有186 GB的数据,但我的存储空间不足: HDFS在可用空间上表现出巨大的差异: 数据节点1=7.47 GB 数据节点2=17.7 GB datanode3=143GB 为了确保hadoop本地存储使用这些空间,我在每个datanode上运行了这个命令

我有一个三节点hadoop集群,复制因子为3

每个系统的存储目录为/app/hadoop/tmp/dfs/

每个数据节点系统的硬盘容量为221GB

HDFS的有效数据为62GB,其中复制62*3=186GB

现在的问题是,尽管660 GB群集上只有186 GB的数据,但我的存储空间不足: HDFS在可用空间上表现出巨大的差异:

数据节点1=7.47 GB

数据节点2=17.7 GB

datanode3=143GB

为了确保hadoop本地存储使用这些空间,我在每个datanode上运行了这个命令。 对于datanode1

du -h --max-depth=1 /app/hadoop/tmp/
63G     /app/hadoop/tmp/dfs
139G    /app/hadoop/tmp/mapred
201G    /app/hadoop/tmp/
对于datanode2

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——最大深度=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坏了几天,在修复它之后,这个问题出现了。
如何平衡负载?

您对磁盘空间的分析包括MapReduce scratch目录空间(/app/hadoop/tmp/mapred路径),它们位于HDFS之外,大部分是作业完成时清除的临时数据。 DFS空间(/app/hadoop/tmp/DFS)似乎与您的预期使用大小一致

因此,您的磁盘空间不会被DataNodes占用,而是被TaskTracker占用,重新启动它们会强制清除这些目录