gpt4 book ai didi

hadoop - Namenode 为所有文件 block 存储元数据

转载 作者:可可西里 更新时间:2023-11-01 14:38:59 27 4
gpt4 key购买 nike

在阅读《Hadoop:权威指南》这本书时,我遇到了这个 page使用以下行:

名称节点也知道给定文件的所有 block 所在的数据节点,但是,它不会持久存储 block 位置,因为此信息是在系统启动时从数据节点重建的

我很难理解这是如何工作的。比方说,我在复制因子为 3 的 8 节点集群上复制了一个 1 GB 的文件。因此每个数据节点将有 1 个 block ,这些 block 将被复制到其他节点上,从而使每个节点上的 block 总数有效地达到 3 . 现在 namenode 应该保留一个包含每个 block 位置的索引。但是根据文本,如果 namenode 不存储 block 位置持久,那么在集群关闭并重新启动后它们将如何重建。无法判断哪个 block 属于哪个文件。有人可以给我解释一下吗?

最佳答案

namenode 确实保留了一些关于文件的状态(名称、路径、大小、 block 大小、 block ID 等),只是不保存 block 所在的物理位置。

当数据节点启动时,它们有效地对 dfs 数据目录进行树遍历,发现它们拥有的所有文件 block ,一旦完成,就向名称节点报告它托管的 block 。

namenode 构建文件映射以阻止来自每个数据节点的报告的位置。

这是集群首次启动时有时需要几分钟才能退出安全模式的原因之一 - 如果您有大量文件,每个数据节点可能需要几分钟时间进行树遍历和发现它承载的 block 。

关于hadoop - Namenode 为所有文件 block 存储元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14454382/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com