secondary namenode是否也更新存储在nfs中的元数据?

smdncfj3  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(415)

我正在读“hadoop:权威指南”。这就是作者在Hadoop2.x之前解释容错的方式
没有namenode,就不能使用文件系统。事实上,如果运行namenode的机器被删除,文件系统上的所有文件都将丢失,因为无法知道如何从datanode上的块重建文件。因此,使namenode具有故障恢复能力非常重要,hadoop为此提供了两种机制。第一种方法是备份构成文件系统元数据持久状态的文件。hadoop可以配置为namenode将其持久状态写入多个文件系统。这些写入是同步的和原子的。通常的配置选择是写入本地磁盘和远程nfs装载。也可以运行辅助namenode,尽管它的名称不是namenode。它的主要作用是定期将名称空间映像与编辑日志合并,以防止编辑日志变得过大。辅助namenode通常在单独的物理机器上运行,因为它需要大量cpu和namenode一样多的内存来执行合并。它保留合并名称空间映像的副本,可在namenode失败时使用。但是,辅助namenode的状态滞后于主namenode的状态,因此在主namenode完全失败的情况下,数据丢失几乎是肯定的。在这种情况下,通常的操作过程是将nfs上namenode的元数据文件复制到次节点,并将其作为新的主节点运行
我的理解是nfs总是与主namenode同步。我的问题是,在secondary namenode更新了primary namenode的元数据之后,nfs中存储的元数据如何与primary namenode同步?如果在nfs同步之前主服务器完全失败,会发生什么情况?

mgdq6dx1

mgdq6dx11#

该文档并没有说“主”或辅助namenode必须与nfs同步,而是说,如果您已将namenode备份配置到nfs(我相信,您必须自己执行一些操作,因为它说这是一个“配置选择”),您可以将它们还原到新服务器并将其指定为新namenode。注意“尽管它的名称(secondary namenode)不充当namenode”,并且“secondary namenode的状态滞后于primary”,因此它永远不会获取尚未到达primary的数据,它将检查已经存在的数据。
引用的部分暗指有一个备用namenode,它的用途与备用namenode不同,备用namenode应该是同步的
引用了那个链接,
注意,在ha集群中,备用namenode还执行名称空间状态的检查点,因此不需要在ha集群中运行辅助namenode、checkpointnode或backupnode。事实上,这样做是错误的

相关问题