HDFS镜像文件和编辑日志文件

in Hadoop with 0 comment

fsimage&edits

NameNode被格式化之后,将在/data/tmp/dfs/name/current目录中产生如下文件

edits_0000000000000000000
fsimage_0000000000000000000.md5
seen_txid
VERSION

1.fsimage文件:HDFS文件系统元数据的一个永久性的检查点,其中包含HDFS文件系统的所有目录和文件idnode的序列化信息。
2.edits文件:存放HDFS文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到edits文件中。
3.seen_txid文件保存的是一个数字,就是最后一个edits_的数字
4.每次Namenode启动的时候都会将fsimage文件读入内存,并从00001开始到seen_txid中记录的数字依次执行每个edits里面的更新操作,保证内存中的元数据信息是最新的、同步的,可以看成Namenode启动的时候就将fsimage和edits文件进行了合并。

fsimage文件和edits文件不能直接查看,需要导出为指定的文件格式查看。

oiv查看fsimage文件

基本语法

hdfs oiv -p 输出文件类型 -i fsimage镜像文件 -o 文件输出路径

例如

hdfs oiv -p XML -i fsimage_0000000000000000025 -o /opt/module/hadoop-2.7.2/fsimage.xml

oev查看edits文件

基本语法

hdfs oev -p 输出文件类型 -i edits文件 -o 文件输出路径

例如

hdfs oev -p XML -i edits_0000000000000000012-0000000000000000013 -o /opt/module/hadoop-2.7.2/edits.xml

滚动编辑日志

正常情况HDFS文件系统有更新操作时,就会滚动编辑日志。也可以用命令强制滚动编辑日志。

 hdfs dfsadmin -rollEdits