HDFS文件系统中,Fsimage和Edits

一、概念

Fsimage镜像文件:元数据的一个持久化检查点,包含Hadoop文件系统中的所有目录和文件元数据信息,但不包含文件块位置的信息。文件块位置信息只存储在内存中,是在DataNode加入集群的时候,NameNode询问DataNode得到的,并且间断的更新。

Edits编辑日志:存放的是Hadoop文件系统的所有更改操作(文件创建,删除或修改),文件系统客户端执行的更改操作,首先会被记录到Edits文件中。

相同点
Fsimage和Edits文件都是经过序列化的,在NameNode启动时,它会将Fsimage文件中的内容加载到内存中,之后再执行Edits文件中的各项操作,使得内存中的元数据和实际的同步,存在内存中的元数据支持客户端读操作,也是完整的元数据

不同点
当客户端对HDFS中的文件进行新增或者修改操作,操作记录首先被记入Edits日志文件中,当客户端操作成功后,相应的元数据会更新到内存数据中。因为Fsimage文件一般都很大(GB级别的很常见),如果所有的更新操作都往Fsimage文件中添加,这样会导致系统运行的十分缓慢。
 

查看fsimage

hdfs oiv -p 文件类型 -i镜像文件 -o 转换后文件输出路径
 
hdfs oiv -p XML -i fsimage_0000000000000000829 -o /opt/module/hadoop-3.1.3/fsimage_copy.xml

查看edits

hdfs oev -p 文件类型 -i编辑日志 -o 转换后文件输出路径
 
hdfs oev -p XML -i edits_inprogress_0000000000000000830 -o /opt/module/hadoop-3.1.3/edits_copy.xml

你可能感兴趣的:(hdfs,hadoop,大数据)