HDFS文件系统中,Fsimage和Edits

Fsimage是Hadoop文件系统的元数据检查点,不含文件块位置信息,而Edits日志记录所有更改操作。NameNode启动时加载Fsimage到内存并执行Edits中的操作保持同步。由于Fsimage通常较大,更新操作直接写入会导致效率降低,因此更新先入Edits,然后更新内存。可以使用hdfsoiv和hdfsoev工具将这些文件转换为XML格式以方便查看。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概念

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值