HDFS 不复制块

HDFS does not replicate blocks

我最近安装了 Hadoop (Cloudera)。我得到一个错误,我在复制块下(在 Cloudera Manager 中,它是安装的 gui)。所以当我 运行

hdfs dfsadmin -report

我明白了

Configured Capacity: 555730632704 (517.56 GB)
Present Capacity: 524592504832 (488.56 GB)
DFS Remaining: 524592193536 (488.56 GB)
DFS Used: 311296 (304 KB)
DFS Used%: 0.00%
Under replicated blocks: 5
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0

这意味着出于某种原因我的 hdfs 没有复制块。从这里检查什么?这可能是我的 HDFS Balancer 的问题,我需要手动 运行 吗?

复制块不足有两个主要原因:

1。复制因子超过可用数据节点

假设您只有 2 个数据节点,并且您的复制因子为 3,那么您创建的每个块都将处于复制状态,因为根本没有要复制到的 3 个数据节点。

解决方案可以是添加数据节点,也可以是降低复制因子。

2。集群太忙

集群将优先于 'real' 工作而不是复制块。因此,如果您创建了大量块,可能需要一段时间才能赶上。如果您的集群一直很忙,理论上可能总会有一些未复制的块。

注意你提到的是一个新的集群,而且磁盘似乎几乎是空的,我认为2不会出现这种情况。


除此之外,当然也有可能是某些东西真的坏了(比如平衡),但在您确认可以排除上述两种情况之前,我不会担心这一点。大多数失败的事情往往会在这里或那里导致错误,所以假设您没有看到任何错误,这种情况不太可能发生。