【发布时间】:2013-01-22 08:32:28
【问题描述】:
在阅读 Hadoop: The Definitive Guide 一书时,我遇到了page,其中包含以下内容:
namenode 还知道给定文件的所有块所在的数据节点,但是,它不会永久存储块位置,因为这些信息是在系统启动时从数据节点重建的。
我很难理解这是如何工作的。假设我在一个 8 节点集群上复制了一个 1 GB 的文件,复制因子为 3。所以每个数据节点将有 1 个块,这些块将被复制到其他节点上,使每个节点上的块总数有效地达到 3 . 现在namenode应该保存一个包含每个块位置的索引。但是根据文中的说法,如果namenode没有持久存储block位置,那么在集群关闭重启后,它们是如何重建的。没有办法知道哪个块属于哪个文件。有人可以向我解释一下吗?
【问题讨论】: