Fsimage 和 Edits 解析

浩客2年前技术文章868


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)



相关文章

oracle gi安装报错PRCR-1079 : Failed to start resource ora.cvu

安装gi执行root.sh报错:PRCR-1079 : Failed to start resource ora.cvu安装gi执行root.sh报错:PRCC-1014 : LISTENER_SCA...

kafka性能关键参数配置指导

本文为kafka调优过程中主要参数以及参数相关释意,在遇到kafak性能问题时可优先调整一下参数1.Broker参数指导KAFKA_HEAP_OPTS:-Xmx6G   ...

CDH实操--kudumaster迁移

CDH实操--kudumaster迁移

1 概述本次kudumaster迁移,中间不需要停kudu集群(会涉及滚动重启kudu角色); 注:若因为任务持续运行导致kudu停止超时可手动一台台停止-启动2 master迁移将cdh2中的ma...

Clickhouse冷热数据分离实践

配置多卷存储策略使用Clickhouse的存储策略功能,可以实现冷热数据分离存储。我们可以将业务上访问频繁的数据放到热存储区(如高性能SSD磁盘),将业务上较少访问的数据放在冷存储区(如价格更便宜、空...

hive部署

安装前准备修改环境变量vi /etc/profile 添加内容如下:(hive节点都要执行)export HIVE_HOME=/opt/hiveexport PATH=$PATH:$HIVE_HOME...

CDH 5.16.2原地升级到CDP7.1.7

CDH 5.16.2原地升级到CDP7.1.7

1 升级Cloudera管理器1.1 升级Cloudera管理器准备1.1.1.1 关闭cloudera上托管的组件1.1.1.2 关闭Cloudera management service服务检查o...

发表评论    

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