gpt4 book ai didi

Hadoop - HDFS Namenode 元数据 - FSImage

转载 作者:可可西里 更新时间:2023-11-01 15:14:54 24 4
gpt4 key购买 nike

我知道在主节点中我们有名称节点,它在两个文件中维护一个元数据。一个是 FSImage,另一个是 Edit logs。
所以这个FSImage最初是在hadoop系统启动时加载的,这个FSImage包含了集群的目录结构和存储的数据。然后,对于发生的每个事务,都会更新编辑日志文件。

我的问题如下:

  1. 这些只是包含所有信息(FSImage 和 EditLogs)的文件还是还有更多?
  2. 这是否意味着 FSImage 文件只会被写入一次?
  3. 如果是,那为什么它总是被复制到二级名称节点?这不是增加了一个待完成的任务吗?
  4. 假设我在 hdfs 中添加或删除了一个新文件;那么这个 FSImage 不会被更新吗?

最佳答案

要理解这一点,我们必须在 Hadoop 运行时逐步详细地了解它

  1. 加载 FSImage 后的 Namenode 具有数据在内存中存储位置的完整快照。

  2. 交易正在进来,信息存储在编辑日志中。

  3. 检查点节点/辅助名称节点会定期(默认情况下每小时)检索日志,并将它们与最新的 fsimage 合并,并将数据保留为检查点。此时,nn 内存中有图像,清空编辑日志,并将最新的检查点作为图像存储在 snn/cn 上。

回答你的问题。

  1. 是的,只有两个文件

  2. SNN/CN 上的 fsimage 会定期更新。当检查点被导入时,NN 上的 fsimage 将被更新。这应该至少在重新启动时发生。

  3. 将 editlog 合并到 fsimage 是一项代价高昂的操作。它需要在名称节点中进入安全模式才能合并数据。这在这样的环境下是不可能的

  4. 删除和写入一样是日志,所以它存储在编辑日志中

关于Hadoop - HDFS Namenode 元数据 - FSImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26121617/

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