我最近安装了 Hadoop (Cloudera)。我得到一个错误,我在复制 block 下(在 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 没有复制 block 。从这里检查什么?这可能是我的问题吗 HDFS Balancer我需要手动运行它吗?
最佳答案
复制 block 不足有两个主要原因:
1。复制因子超过可用数据节点
假设您只有 2 个数据节点,并且您的复制因子为 3,那么您创建的每个 block 都将处于复制状态,因为根本没有要复制到的 3 个数据节点。
解决方案可以是添加数据节点,也可以是降低复制因子。
2。集群太忙
集群会将“实际”工作优先于 block 的复制。因此,如果您创建了大量 block ,可能需要一段时间才能 catch 。如果您的集群一直很忙,理论上可能总会有一些复制不足的 block 。
请注意,正如您提到的,它是一个新集群,并且磁盘似乎几乎是空的,我认为 2 不会出现这种情况。
除此之外,当然也有可能确实出现了某些问题(例如平衡),但在您确认可以排除上述两种情况之前,我不会担心这一点。大多数损坏的东西往往会在这里或那里导致错误,所以假设您没有看到任何错误,这种情况就不太可能发生。
关于hadoop - HDFS 不复制 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46824383/