购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3
SecondaryNameNode

SecondaryNameNode为HA(高可用)的一个解决方案。在伪分布式中一般只有一个NameNode,一旦NameNode宕机,内存中的元数据信息也将随之丢失,而NameNode中的元数据信息就像是图书中的目录一样,记录了所有文件存储的信息。如果再次启动NameNode不能找回元信息,将会无法找到之前存储的文件。而此时SecondaryNameNode就扮演了非常重要的角色,它实时将NameNode的元数据保存到磁盘上,NameNode重新启动时,会读取磁盘上的元数据信息到内存,从而将损失降到最小。SecondaryNameNode的职责是合并NameNode的edit logs到fsimage文件中,如图3-5所示。在正式的集群中没有SecondaryNameNode进程,而是多个NameNode进程互为主备。

图3-5

图3-5展示了SecondaryNameNode是如何工作的:

(1)它定时到NameNode去获取edit logs(内存中的editlog即为metadata),并更新到fsimage中。具体执行合并更新的时间可以通过以下两个参数在hdfs-site.xml文件中进行配置,以最先达到的值为执行的时间点。

● 时间参数:dfs.namenode.checkpoint.period默认值为3600s,即3600秒。

● 事务参数:dfs.namenode.checkpoint.txns默认值为1000000,即100万事务后将执行合并。

(2)NameNode在下次重启时会使用这个新的fsimage文件和edists文件进行合并,将合并到内存中的fsimages的元数据信息重新保存到磁盘上。

(3)SecondaryNameNode的整个目的是在HDFS中提供一个检查点。它只是NameNode的一个助手。

现在,我们了解了SecondaryNameNode所做的不过是帮助NameNode更好的工作。它并不是要取代NameNode也不是NameNode的备份。 c1kXYwQ0hzkNNbEpX0xJ3PUTERG8W/jSoPoPPrbPR+Eo5p27IFmFAY/JpQtXJjw7

点击中间区域
呼出菜单
上一章
目录
下一章
×