【Hadoop-HDFS】HDFS中Fsimage与Edits详解

1)概述

在HDFS中,NameNode 保存了整个 HDFS 的元数据信息,而这些数据最终会被持久化到 Fsimage 文件和 EditLog 文件。

换而言之,NameNode 的元数据信息FsimageEditlog 组成。

Fsimage 存放上次 checkpoint 生成的文件系统元数据。

EditLog 则存放文件系统的操作日志,也就是用户对目录、文件的每个写操作(包括创建、删除、写入等)都会被记录到 Editlog 文件中。

注意

Fsimage,Editlog 主要用于在集群启动时将集群的状态恢复到关闭前的状态。为了达到这个目的,集群启动时将 Fsimage、Editlog 加载到内存中进行合并,合并后恢复完成。

2)NameNode元数据解析

1、`第一次启动 NameNode 格式化后,创建 Fsimage 和 Edits 文件。如果不是第一次启动,直接加载 Edits 和 Fsimage 文件到内存。

2、客户端对元数据进行增删改的请求。

3、NameNode 记录操作日志,更新滚动日志。

4、NameNode 在内存中对数据进行增删改查。

在这里插入图片描述

3)Fsimage

3.1.Fsimage 的作用

Fsimage 保存了最新的元数据检查点,在 HDFS 启动时加载 Fsimage 的信息,包含了整个 HDFS 文件系统的所有目录和文件的信息。

  • 对于文件来说包括了数据块描述信息、修改时间、访问时间等。

  • 对于目录来说包括修改时间、访问权限控制信息(目录所属用户,所在组)等。

3.2.FSimage 的文件信息查看

使用命令:hdfs oiv

cd  /export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/namenodeDatas/current
hdfs oiv -i fsimage_0000000000000000864 -p XML -o hello.xml

在这里插入图片描述

4)Edits

4.1.Edits 的作用

Editlog 主要是在 NameNode 已经启动情况下对 HDFS 进行的各种更新操作进行记录,HDFS 客户端执行所有的写操作都会被记录到 Editlog 中。

4.2.Edits 的文件信息查看

查看命令:hdfs oev

cd  /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits/current
hdfs oev -i  edits_0000000000000000865-0000000000000000866 -o myedit.xml -p XML

5)元数据信息目录的配置

hdfs-site.xml 当中

<property>
  <name>dfs.namenode.name.dir</name>
     <value>
		file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/namenodeDatas
	</value>
</property>
<property>
   <name>dfs.namenode.edits.dir</name>
   <value>
		file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/dfs/nn/edits
	</value>
</property>

猜你喜欢

转载自blog.csdn.net/weixin_53543905/article/details/130430928
今日推荐