本节我们主要写Secondary NameNode是如何合并命名空间文件和编辑日志文件。
客户端对HDFS的文件系统目录树进行的任何修改,都会被记录到编辑日志文件中,以保证系统出现故障后,能够根据这些日志进行恢复,但是随着日志不断地增长,这意味着系统从气候,需要进行恢复的时间也就越长。为了避免这一情况的发生,HDFS引入了检查点机制。
命名空间镜像(FSImage)文件文件系统的持久性检查点,和编辑日志不同,它不能再客户端度HDFS做的每次修改后都及时更新。故命名空间镜像再加上编辑日志,NameNode节点的元数据提供了安全保障。
在NameNode启动时,首先会将磁盘上的fsiamge命名空间镜像文件读入内存,恢复到某个时间的检查点,然后再读取编辑日志,进行重建。
Hadoop中引入了第二命名节点Secondary NameNode节点,就是为了解决编辑日志谁时间不端的增长,如果NameNode节点重启后要花很长时间来执行编辑日志中的每一个操作这种情况。
Secondary NameNode节点的工作流程:
1)、定期的通过远程方法获取NameNode节点上编辑日的大小;
2)、如果NameNode节点上编辑日很小,就不需要合并NameNode上的fsimage文件和编辑日志;
3)、通过远程接口启动一次检查点过程,这是名字节点需要创建一个新的编辑日志文件edits.new,后续对文件系统的任何修改都记录到这个新编辑日志里;
4)、第二名字节点将Namenode上的fsimage文件和原编辑日志下载到本地,并在内存中合并,合并的结果输出为fsimage.ckpt;
5)、再次发起请求通知NameNode节点数据(fsimage.ckpt)已准备好,然后NameNode节点会下载fsimage.ckpt;
6)、NameNode下载结束后,Secondary NameNode会通过远程调用(NameNodeProtocol.rollFsImage())完成这次检查点,NameNode在响应该远程调用时,会用fsimage.ckpt覆盖原来的fsimage文件,形成新的命名空间镜像,同时将新的编辑日志edits.new改名为edits。
整个流程如下图示:
- 大小: 56.7 KB
分享到:
相关推荐
- **SNN 合并流程**:SecondaryNameNode 会定期地把 NameNode 中的 edit log 文件合并到 fsimage 文件中,减少 NameNode 在启动时需要加载的日志文件数量。 - **DataNode**:负责存储实际的数据块,并响应来自 ...
NN 负责读写操作,保存 metadata,SNN 负责辅助 NN 合并 fsimage 和 edits,DN 负责存储数据。 3. HDFS 的安全模式:HDFS 在启动时会加载 metadata,直到 NN 完全加载完 metadata 之前,期间不能写入文件。DN 会检查...
总结,大数据学习涵盖了Hadoop、HDFS和Spark等多个关键组件,深入理解这些技术对于开发和优化大数据解决方案至关重要。通过学习和实践,可以提升处理大规模数据的能力,满足企业对大数据分析的需求。
为了持久化这些元数据,Hadoop引入了Secondary NameNode(SNN),它负责合并编辑日志(edits logs)并生成文件系统镜像(fsimage)。DataNode则实际存储着文件块数据,并且与NameNode保持心跳,向NameNode汇报块列表...
### 大数据面试知识点解析 #### 一、Hadoop运行原理 ...通过上述分析,我们不仅了解了Hadoop的核心组件HDFS和MapReduce的基本原理及应用,还深入探讨了具体的实现细节,为理解大数据处理提供了坚实的基础。