NameNode 和 SecondaryNameNode: Fsimage 和 Edits 解析、ovi命令、oev命令
文章目录
- NameNode 和 SecondaryNameNode: Fsimage 和 Edits 解析、ovi命令、oev命令
- 一、SecondaryNamenode, 专门用于 FsImage 和 Edits 的合并。
- 二、 Fsimage 和 Edits 解析
- Fsimage和Edits概念
- 1)oiv 查看 Fsimage 文件
- 2)oev 查看 Edits 文件
NameNode 和 SecondaryNameNode: Fsimage 和 Edits 解析、ovi命令、oev命令

一、SecondaryNamenode, 专门用于 FsImage 和 Edits 的合并。
1)第一阶段:NameNode 启动
(1)第一次启动 NameNode 格式化后,创建 Fsimage 和 Edits 文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
(2)客户端对元数据进行增删改的请求。
(3)NameNode 记录操作日志,更新滚动日志。
(4)NameNode 在内存中对元数据进行增删改。
2)第二阶段:Secondary NameNode 工作
(1)Secondary NameNode 询问 NameNode 是否需要 CheckPoint。直接带回 NameNode 是否检查结果。
(2)Secondary NameNode 请求执行 CheckPoint。
(3)NameNode 滚动正在写的 Edits 日志。
(4)将滚动前的编辑日志和镜像文件拷贝到 Secondary NameNode。
(5)Secondary NameNode 加载编辑日志和镜像文件到内存,并合并。
(6)生成新的镜像文件 fsimage.chkpoint。
(7)拷贝 fsimage.chkpoint 到 NameNode。
(8)NameNode 将 fsimage.chkpoint 重新命名成 fsimage。
二、 Fsimage 和 Edits 解析
Fsimage和Edits概念
NameNode被格式化之后,将在/opt/module/hadoop-3.1.3/data/tmp/dfs/name/current目录中产生如下文件

(1)Fsimage文件:HDFS文件系统元数据的一个永久性的检查点,其中包含HDFS文件系统的所有目录和文件inode的序列化信息。
(2)Edits文件:存放HDFS文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到Edits文件中。
(3)seen_txid文件保存的是一个数字,就是最后一个edits_的数字。
(4)每次NameNode启动的时候都会将Fsimage文件读入内存,加 载Edits里面的更新操作,保证内存 中的元数据信息是最新的、同步的,可以看成NameNode启动的时候就将Fsimage和Edits文件进行了合并。
1)oiv 查看 Fsimage 文件
(1)查看 oiv 和 oev 命令
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)案例实操
pwd
/opt/module/hadoop-3.1.3/data/dfs/name/currenthdfs oiv -p XML -i fsimage_0000000000000000025 -o /opt/module/hadoop-3.1.3/fsimage.xmlcat /opt/module/hadoop-3.1.3/fsimage.xml
2)oev 查看 Edits 文件
(1)基本语法
hdfs oev -p 文件类型 -i 编辑日志 -o 转换后文件输出路径
(2)案例实操
pwd
/opt/module/hadoop-3.1.3/data/dfs/name/currenthdfs oev -p XML -i edits_0000000000000000012-0000000000000000013 -o /opt/module/hadoop3.1.3/edits.xmlcat /opt/module/hadoop-3.1.3/edits.xml
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
