为什么我们需要编辑日志来维护HDFS中的更改

时间:2017-12-14 05:34:05

标签: hadoop hdfs hadoop2

为什么我们需要调解员来记下HDFS中的更改。为什么不能将更改直接写入FSimage。为什么我们需要介于两者之间的调解员。请帮助

1 个答案:

答案 0 :(得分:0)

在Checkpointing时使用。

  

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

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

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

阅读man page blurb了解更多详情