hdfs不复制块

up9lanfz  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(533)

我最近安装了hadoop(cloudera)。我在复制块下得到一个错误(在clouderamanager中,它是安装的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平衡器有问题,我需要手动运行它?

dgtucam1

dgtucam11#

有两个主要原因导致数据块复制不足:

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

假设您只有2个数据节点,并且您的复制因子是3,那么您创建的每个块都将保留在“复制”下,因为根本没有3个数据节点要复制到。
解决方案可以是添加数据节点,也可以减少复制因子。

2. 群集太忙

集群将优先考虑“实际”工作,而不是块的复制。因此,如果创建大量块,可能需要一段时间才能赶上。如果您的集群一直处于繁忙状态,理论上可能总是存在一些未复制的块。
请注意,正如您提到的,这是一个新的集群,磁盘似乎是最空的,我不认为2会是这种情况。
除此之外,当然有可能有什么东西真的打破了(比如平衡),但我不会担心,直到你证实,上述两种情况可以排除。大多数中断的东西都会在这里或那里导致错误,所以假设你看不到任何错误,这种情况不太可能发生。

相关问题