如何找到为什么">副本保留空间"不断增加以及如何限制此类缓存的空间?我们发现">副本的保留空间"超过了非 DFS 已用空间(上个月(。但我们没有找到原因:(
我们知道如何计算"非 DFS">,但">副本保留空间"显示的空间大小与"非 DFS"实际占用的空间大小不对应。例如,我们有 6 TB 的卷:
- ">DFS 已使用"需要 4 TB
- 卷上的">可用空间"为 2 TB(此信息通过">df -h"获取(
- ">非 DFS"需要 2 TB(为什么???如果">df -h"显示我们有 2 TB 可用容量 空间(
目前要释放为此类缓存分配的空间("副本保留空间"(,我们需要重新启动数据节点服务。但我们认为这不是解决方案!
我们使用HDP v3.0.1,HDFSv3.1,OracleJDK 8u181
对于面临此类问题的人。首先,您应该了解问题的本质。为此,请阅读以下问题的说明:
- https://issues.apache.org/jira/browse/HDFS-8072
- https://issues.apache.org/jira/browse/HDFS-9530
- https://issues.apache.org/jira/browse/HDFS-6489
以下链接将有助于了解什么是块副本:
- https://blog.cloudera.com/understanding-hdfs-recovery-processes-part-1/
- https://blog.cloudera.com/understanding-hdfs-recovery-processes-part-2/
解决 方案
- 查找错误的软件,这些软件在写入或追加过程中经常断开与Hadoop的连接
- 尝试更改复制策略(有风险(
- 将 Hadoop 更新到最新版本
如果不重新启动 Hadoop 服务,则无法重置"副本保留空间"!