我有一个问题,关于 fsimage 中的元数据是什么。我读到文件系统命名空间的所有突变,例如文件重命名、权限更改、文件创建、 block 分配都在 fsimage 中。但是 block 位置数据也是如此吗? 它是否也包含有关 block 存储位置(在哪个数据节点上)的信息? 我从这个来源得到:http://bradhedlund.com/2011/09/10/understanding-hadoop-clusters-and-the-network/关于存储 block 的元数据是由数据节点的 block 报告构建的。 这是真的?所以 Fsimage 不包含有关 block 位置的信息?
最佳答案
Namenode维护着两种类型的数据
Block Location data :由于文件被分成 block ,NN 应该知道哪一 block 在哪里。 此数据保存在内存中,从不保存在磁盘上,DN 定期与 NN 对话并共享 block 报告。
文件系统(元数据):例如文件系统层次结构、权限等,这些信息被持久化到磁盘
当 namenodes 启动时,它从 fsimage 加载文件系统的“快照”,并将来自 edits 的编辑日志应用到它上面,在这个过程之后我们得到一个新的快照。从这一点开始,namenode 可以接受来自客户端/DN 的文件系统请求
关于apache - fsimage hdfs 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16779501/