【Hadoop-HDFS】HDFS中Fsimage与Edits详解
1)概述
在HDFS中,NameNode 保存了整个 HDFS 的元数据信息,而这些数据最终会被持久化到 Fsimage 文件和 EditLog 文件。
换而言之,NameNode 的元数据信息
由 Fsimage
和 Editlog
组成。
Fsimage 存放上次 checkpoint 生成的文件系统元数据。
EditLog 则存放文件系统的操作日志,也就是用户对目录、文件的每个写操作(包括创建、删除、写入等)都会被记录到 Editlog 文件中。
注意:
Fsimage,Editlog 主要用于在集群启动时将集群的状态恢复到关闭前的状态。为了达到这个目的,集群启动时将 Fsimage、Editlog 加载到内存中进行合并,合并后恢复完成。
2)NameNode元数据解析
1、`第一次启动 NameNode 格式化后,创建 Fsimage 和 Edits 文件。如果不是第一次启动,直接加载 Edits 和 Fsimage 文件到内存。
2、客户端对元数据进行增删改的请求。
3、NameNode 记录操作日志,更新滚动日志。
4、NameNode 在内存中对数据进行增删改查。