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