Fsimage 和 Edits 解析

浩客2年前技术文章992


1、Fsimage和Edits概念

  • NameNode被格式化之后,将在所配置的存储目录中产生如下文件,fsimage和editslog文件存储在dfs.namenode.name.dir所设的路径下。

  • Fsimage,Editlog 主要用于在集群启动时将集群的状态恢复到关闭前的状态。为了达到这个目的,集群启动时将 Fsimage、Editlog 加载到内存中进行合并,合并后恢复完成。

11111111111111111.PNG

(1)Fsimage文件:HDFS文件系统元数据的一个永久性的检查点,其中包含HDFS文件系统的所有目 录和文件inode的序列化信息。

(2)Edits文件:存放HDFS文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先 会被记录到Edits文件中。

3seen_txid文件保存的是一个数字,就是最后一个edits_的数字

(4)每 次NameNode启动的时候都会将Fsimage文件读入内存,加 载Edits里面的更新操作,保证内存 中的元数据信息是最新的、同步的,可以看成NameNode启动的时候就将Fsimage和Edits文件进行了合并。


2、概述:

HDFS中解析fsImage的工具是 Offline Image Viewer ,对应的命令是hdfs oiv。Offline Image Viewer提供了几下几种处理器:

  • XML:将fsimage文件中的所有内容解析为XML格式的文件,该处理器的输出可以通过XML工具进行自动化处理和分析。由于XML语法的冗长,该处理器生成的输出文件非常大。

  • FileDistribution:分析namespace image中的文件大小分布的一个工具

  • Web:启动一个HTTP服务,对外暴露一个只读的WebHDFS API。不支持secure 模式。

  • Delimited(experimental):生成一个文本文件,其中包含inodes-under-construction和inode所共有的所有元素,用分隔符分隔,默认分隔符是\t,但可以通过-delimiter参数更改。

  • ReverseXML(experimental):对应XML processor,将XML格式的文件反解析为FSImage。这个处理器可以很容易地创建用于测试的fsimages,并在fsimage出现损坏时手动编辑fsimages。

选项说明:
  • -i,–inputFile 必选项,指定FSImage或者XML文件

  • -o,–outputFile 可选项,指定输出文件,默认是stdout

  • -p,–processor 可选项,指定processor,默认是Web processor

  • -delimiter 可选项,用于使用Delimited processor时,指定输出字符串的分隔符

  • -t,–temp 可选项,用于使用Delimited processor时,指定临时目录缓存输出。


3、获取fsimage文件:
hdfs dfsadmin -fetchImage <path>

222222222222222.PNG


4、统计文件整体情况
hdfs oiv -p FileDistribution -i fsimage_0000000000000024082 -o <filename>

3333333333333333.PNG



5、XML使用示例、
hdfs oiv -p XML -i fsimage_0000000000000024082 -o fsimage.xml

4444444444.PNG


6、Delimited使用示例
hdfs oiv -i fsimage_0000000000000024082 -p Delimited

5555.jpg

hdfs oiv -i fsimage_0000000003621277730 -t /temp/dir -o /data/fs_distribution -p Delimited -delimiter “,”(-t使用临时文件处理中间数据 不加的话全部使用内存 容易OOM)



相关文章

MySQL运维实战(3.2) 常见数据库连接失败问题排查

如果数据库连接失败,可以从如下几方面来排查:1、客户端到服务端的网络是否畅通,服务端端口是否能连通。使用ping、telnet等工具探测服务端的端口是否能访问。[root@box3 ~]#&...

华为云SQLServer 慢日志查看

华为云SQLServer 慢日志查看

一、背景华为云目前只支持 SQLServer 登录数据库,不支持查看慢日志。对于开启慢日志的实例,也只能通过将慢日志下载到本地 再远程连接目标实例数据库查看。本篇将华为云 SQLServer 实例出现...

数仓主流架构简介之三

数仓主流架构简介之三

一、数仓架构经历过程随着数据量的暴增和数据实时性要求越来越高,以及大数据技术的发展驱动企业不断升级迭代,数据仓库架构方面也在不断演进,分别经历了以下过程:早期经典数仓架构 > 离线大数据架构 &...

ldap安装部署

ldap安装部署

一、关闭selinux和防火墙sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/c...

Redis Sentinel与Cluster安装部署(三)

4.3redis-cluster-resharding重新分配槽1、查看当前集群节点状态信息 # redis-cli --cluster check 172.32.1.59:7000 -a dt20...

配置跨集群互信

1.源集群修改项创建跨域krbtgt Principal进入kadmin命令行,执行以下2条命令:(如有加密算法需要添加加密算法部分)addprinc krbtgt/源集群realm@目标集群real...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。