在 HDFS(Hadoop Distributed File System)中,Secondary NameNode (SNN) 的主要作用是辅助 NameNode 合并元数据文件,这个过程被称为 Checkpoint(检查点)。 为了让你更容易理解,我们需要先了解 NameNode 是如何存储元数据的,然后再看 Secondary NameNode 究竟帮了什么忙。 1. 为什么需要 Secondary NameNode?(背景) NameNode 主要负责管理文件系统的元数据(文件目录树、文件到数据块的映射等)。为了保证性能,NameNode 把元数据保存在内存中。但为了防止断电数据丢失,它必须把数据持久化到硬盘上。HDFS 采用了两种文件来持久化元数据: fsimage(镜像文件): 元数据在某一时刻的完整快照(相当于数据库的冷备份)。 edits(编辑日志): 记录了客户端对 HDFS 的所有增删改操作(相当于数据库的增量日志)。 痛点: 随着系统运行, 日志文件会越来越大。如果 NameNode 突然宕机重启,它需要先加载 ,然后逐条重放庞大的 日志来恢复内存状态。这会...