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

1)概念

    namenode 被格式化之后,在/home/hadoop/hadoop_home/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 文件进行了合并。

2)oiv 查看 fsimage 文件

    (1)查看 oiv 和 oev 命令
hadoop@master:~/hadoop_home/dfs/name/current$ hdfs

oiv		apply the offline fsimage viewer to an fsimage
oev		apply the offline edits viewer to an edits file

    (2)基本语法
hdfs oiv -p 文件类型 -i 镜像文件 -o 转换后文件输出路径

    (3)案例实操
hadoop@master:~/hadoop_home/dfs/name/current$ pwd

/home/hadoop/hadoop_home/dfs/name/current

hadoop@master:~/hadoop_home/dfs/name/current$ hdfs oiv -p XML -i fsimage_0000000000000000025 -o ~/hadoop_home/fsimage.xml
hadoop@master:~/hadoop_home/dfs/name/current$ cat /home/hadoop/hadoop_home/fsimage.xml
将显示的 xml 文件内容拷贝到 eclipse 中创建的 xml 文件中,并Ctrl+Alt+L格式化。

3)oev 查看 edits 文件

    (1)基本语法
hdfs oev -p 文件类型 -i 编辑日志 -o 转换后文件输出路径

    (2)案例实操
hadoop@master:~/hadoop_home/dfs/name/current$ hdfs oev -p XML -i edits_0000000000000000012-0000000000000000013 -o /home/hadoop/hadoop_home/edits.xml
[hadoop@node2 current]$ cat /home/hadoop/hadoop_home/edits.xml
将显示的 xml 文件内容拷贝到 eclipse 中创建的 xml 文件中,并Ctrl+Alt+L格式化。

猜你喜欢

转载自blog.csdn.net/qq_36885128/article/details/88072501