浅析Hadoop SecondaryNameNode

Hadoop SecondaryNameNode并不是Hadoop 第二个NameNode,它不提供NameNode服务,而仅仅是NameNode的一个工具。这个工具帮助NameNode管理Metadata数据。

NameNode的HDFS文件信息(即Metadata)记录在内存中,client的文件写操作直接修改内存中的Metadata,同时也会记录到硬盘的Edits文件,这是一个Log文件。

当NameNode重启的时候,会合并硬盘上的fsimage文件和edits文件,得到完整的Metadata信息。这个fsimage文件可以看做是一个过时的Metadata信息文件(最新的Metadata修改信息在edits文件中)。

如果edits文件非常大,那么这个合并过程就非常慢,导致HDFS长时间无法启动,如果定时将edits文件合并到fsimage,那么重启NameNode就可以非常快。

SecondaryNameNode就做这个合并的工作。

浅析Hadoop SecondaryNameNode

SecondaryNameNode运行原理时序图

* 如果NameNode崩溃并且硬盘损坏,可以从SecondaryNameNode拷贝fsimage文件,但是SecondaryNameNode最后一次合并之后的更新操作将会丢失。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/7b03b451782f3db58ca05a2f3cf637ce.html