我最近安装了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的问题,我需要手动运行它?
答案 0 :(得分:1)
复制块有两个主要原因:
假设您只有2个数据节点,并且您的复制因子是3,那么您创建的每个块都将保持复制状态,因为没有3个数据节点可以复制到。
解决方案可以是添加数据节点,也可以减少复制因子。
群集将优先考虑真实的'解决块的复制问题。因此,如果您创建了大量的块,可能需要一段时间才能赶上。如果您的群集永久忙,理论上可能总会有一些未复制的块。
请注意,正如您所提到的那样,它是一个新的群集,并且磁盘似乎几乎是空的,我不认为2就是这种情况。
除此之外,当然可能会出现一些问题(比如平衡),但我不担心,直到你确认上述两种情况都可以排除。大多数破坏的东西往往会在这里或那里导致错误,所以假设你没有看到任何不可能出现这种情况。