【发布时间】:2017-12-14 13:58:09
【问题描述】:
为什么我们需要中介来记录 HDFS 中的更改。为什么更改不能直接写入FSimage。为什么我们需要中间人。请帮忙
【问题讨论】:
为什么我们需要中介来记录 HDFS 中的更改。为什么更改不能直接写入FSimage。为什么我们需要中间人。请帮忙
【问题讨论】:
在检查点时使用。
典型的编辑范围从 10 到 100 字节不等,但随着时间的推移,足够多的编辑会累积起来变得笨拙。这些大型编辑日志可能会产生一些问题。在极端情况下,它可以填满一个节点上所有可用的磁盘容量,但更微妙的是,一个大的编辑日志会大大延迟 NameNode 的启动,因为 NameNode 会重新应用所有的编辑。这就是检查点的用武之地。
检查点是一个获取 fsimage 和编辑日志并将它们压缩成新 fsimage 的过程。这样,NameNode 可以直接从 fsimage 加载最终的内存状态,而不是重播可能无限的编辑日志。这是一种效率更高的操作,并且可以减少 NameNode 的启动时间。
但是,创建新的 fsimage 是一项 I/O 和 CPU 密集型操作,有时需要几分钟才能执行。在检查点期间,名称系统还需要限制其他用户的并发访问。因此,HDFS 不是暂停活动的 NameNode 来执行检查点,而是将其推迟到 SecondaryNameNode 或备用 NameNode,具体取决于是否配置了 NameNode 高可用性。检查点的机制根据是否配置了 NameNode 高可用性而有所不同;我们将两者都介绍。
阅读link了解更多详情
【讨论】: