希望这些信息解决了您的困惑。1) Namenode: Namenode保存HDFS命名空间信息、块信息等元数据。Namenode将HDFS文件系统信息存储在名为fsimage的文件中。对文件系统的更新(添加/删除块)不会更新fsimage文件,而是会附加到编辑日志中。Fsimage包含块到文件的映射以及其他称为namenode快照的文件系统属性。重新启动时,namenode会读取fsimage,然后应用来自日志文件的所有更改,以使文件系统状态在内存中保持最新。2) Secondary Namenode: 辅助namenode定期拉取这两个(Edits和fsimage)文件,然后namenode开始将更改写入新的edits文件。然后,辅助namenode将edits文件中的更改与来自fsimage文件的旧快照合并,并创建一个更新后的fsimage文件。然后将此更新后的fsimage文件复制到namenode。3) FailOver NameNode或被动namenode(仅在启用HA时): 在Hadoop 2.0.0之前,NameNode是HDFS集群中的单点故障(SPOF)。每个集群都有一个NameNode,如果该机器或进程不可用,则整个集群将不可用,直到NameNode重新启动或在单独的机器上启动。通过在HA集群中运行两个冗余的NameNode选项来解决上述问题,备用/被动namenode还执行命名空间状态的检查点,因此在HA集群中不需要运行Secondary NameNode、CheckpointNode或BackupNode。事实上,这样做是错误的。