NameNode工作机制(二)镜像文件和编辑日志文件
一、概念
namenode被格式化之后,将在/opt/module/hadoop-2.8.4/data/dfs/name/current目录中产生如下文件
注:只能在NameNode所在的节点才能找到此文件
可以执行find . -name edits* 来查找文件
|
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文件进行了合并。
二、oiv查看fsimage文件
|
cd /opt/module/hadoop-2.8.4/data/dfs/name/current/目录下: 发现cat fsimage_0000000000000000157之后看不懂,于是将其转换成xml的形式。 这里如果要安装Xftp-6,注意:不要将Xftp和Xshell放在一个文件夹中,就是将他俩分开放置即可。 如果Xftp安装不了,用WinSCP |
(1)查看oiv和oev命令
[itstar@bigdata111 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)案例实操
[itstar@bigdata111 current]$ pwd
/opt/module/hadoop-2.8.4/data/dfs/name/current
这里在Xshell中输入命令:hdfs oiv -p XML -i fsimage_0000000000000000157 -o /opt/fsimage.xml
[itstar@bigdata111 current]$ cat /opt/module/hadoop-2.8.4/fsimage.xml
发现看不懂~
将显示的xml文件内容拷贝到IDEA中创建的xml文件中,并格式化。
点开Xftp/WinSCP--》将此文件拖拽到左侧的Windows的指定目录下--》在Windows上找到该文件--》在拖拽到Idea的test/java/Day01中,这样点开就能看懂了。
三、oev查看edits文件
(1)基本语法
hdfs oev -p +文件类型 -i +编辑日志 -o +转换后文件输出的路径 -p stats(转换成认识的二进制格式)
-p –processor <arg> 指定转换类型: binary (二进制格式), xml (默认,XML格式),stats
-i –inputFile <arg> 输入edits文件,如果是xml后缀,表示XML格式,其他表示二进制
-o –outputFile <arg> 输出文件,如果存在,则会覆盖
(2)案例实操
这样直接再输入:cat /opt/edits.xml即可看懂了。

每个RECORD记录了一次操作,比如图中的
OP_ADD代表添加文件操作、OP_MKDIR代表创建目录操作。里面还记录了
文件路径(PATH)
修改时间(MTIME)
添加时间(ATIME)
客户端名称(CLIENT_NAME)
客户端地址(CLIENT_MACHINE)
权限(PERMISSION_STATUS)等非常有用的信息
将显示的xml文件内容拷贝到IDEA中创建的xml文件中,并格式化。
浙公网安备 33010602011771号