具有 3 个复制的 hdfs 上的文件将存储在 3 个主机上?

a file on hdfs with 3 replication will store on 3 hosts?

具有 3 个复制的 hdfs 上的文件将存储在 3 个主机上? 或者不仅存储在 3 个主机上?

复制因子为 3 的文件的每个块都会存储三次(HDFS 存储块,而不是文件)。如果你有 3 个节点(如图的顶部),那么每个块将在每个节点中存储一次。如果你有 1 个节点,所有块将存储在同一个节点中(一次,如 brandon.bell 评论)。如果您有 5 个节点并且每个文件使用超过一个块(如图底部所示),那么,是的,将使用超过 3 个节点。

原因是容错。假设任何两个主机变得不可访问(在底部的图中),您仍然可以检索组成文件的所有块。例如,如果 host4 和 host5 发生故障,那么您仍然可以从 host1 检索 block1,从 host2 检索 block2。

详情请参考this documentation. I also found a nice comic about hadoop replication, in this post