【问题标题】:Why do we need edit logs for maintaining the changes in HDFS为什么我们需要编辑日志来维护 HDFS 中的更改
【发布时间】:2017-12-14 13:58:09
【问题描述】:

为什么我们需要中介来记录 HDFS 中的更改。为什么更改不能直接写入FSimage。为什么我们需要中间人。请帮忙

【问题讨论】:

    标签: hadoop hdfs hadoop2


    【解决方案1】:

    在检查点时使用。

    典型的编辑范围从 10 到 100 字节不等,但随着时间的推移,足够多的编辑会累积起来变得笨拙。这些大型编辑日志可能会产生一些问题。在极端情况下,它可以填满一个节点上所有可用的磁盘容量,但更微妙的是,一个大的编辑日志会大大延迟 NameNode 的启动,因为 NameNode 会重新应用所有的编辑。这就是检查点的用武之地。

    检查点是一个获取 fsimage 和编辑日志并将它们压缩成新 fsimage 的过程。这样,NameNode 可以直接从 fsimage 加载最终的内存状态,而不是重播可能无限的编辑日志。这是一种效率更高的操作,并且可以减少 NameNode 的启动时间。

    但是,创建新的 fsimage 是一项 I/O 和 CPU 密集型操作,有时需要几分钟才能执行。在检查点期间,名称系统还需要限制其他用户的并发访问。因此,HDFS 不是暂停活动的 NameNode 来执行检查点,而是将其推迟到 SecondaryNameNode 或备用 NameNode,具体取决于是否配置了 NameNode 高可用性。检查点的机制根据是否配置了 NameNode 高可用性而有所不同;我们将两者都介绍。

    阅读link了解更多详情

    【讨论】:

      猜你喜欢
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2016-10-11
      • 1970-01-01
      • 2023-01-24
      • 2012-12-12
      相关资源
      最近更新 更多