hadoop查看元数据

edits

hdfs oev -i edits_0000000000000000081-0000000000000000089 -o edits.xml  

该命令需要以下参数:

必须参数:

-i,–inputFile <arg> 输入edits文件,如果是xml后缀,表示XML格式,其他表示二进制。

-o,–outputFile <arg> 输出文件,如果存在,则会覆盖。

可选参数:

-p,–processor <arg> 指定转换类型: binary (二进制格式), xml (默认,XML格式),stats (打印edits文件的静态统计信息)

-h,–help 显示帮助信息

-f,–fix-txids 重置输入edits文件中的transaction IDs

-r,–recover 使用recovery模式,跳过eidts中的错误记录。

-v,–verbose 打印处理时候的输出。

例子1

hdfs oev -i /data1/hadoop/dfs/name/current/edits_0000000000019382469-0000000000019383915 -o /home/hadoop/edits.xml

未指定-p选项,默认转换成xml格式,查看edits.xml文件:

edits

edits

 

在输出的xml文件中,每个RECORD记录了一次操作,比如图中的OP_ADD代表添加文件操作,OP_MKDIR代表创建目录操作。里面还记录了文件路径(PATH),修改时间(MTIME)、添加时间(ATIME)、客户端名称(CLIENT_NAME)、客户端地址(CLIENT_MACHINE)、权限(PERMISSION_STATUS)等非常有用的信息。

当edits文件破损进而导致HDFS文件系统出现问题时,可以通过将原有的binary文件转换为xml文件,并手动编辑xml文件然后转回binary文件来实现。

例子2:

hdfs oev -i /data1/hadoop/dfs/name/current/edits_0000000000019382469-0000000000019383915 -o /home/hadoop/edits.txt -p stats

指定-p stats选项,用于输出该edits文件中的统计信息:

查看edits.txt,打印出该edits文件中每种操作的数量。

edits

edits

 

      fsimage hdfs oiv -i fsimage_0000000000000000115 -p XML -o fsimage.xml
 

该命令需要以下参数:

必须参数:

-i,–inputFile <arg> 输入FSImage文件.

-o,–outputFile <arg> 输出转换后的文件,如果存在,则会覆盖

可选参数:

-p,–processor <arg> 将FSImage文件转换成哪种格式: (Ls|XML|FileDistribution).默认为Ls.

-h,–help 显示帮助信息

例子1

hdfs oiv -i /data1/hadoop/dfs/name/current/fsimage_0000000000019372521 -o /home/hadoop/fsimage.txt

执行后查看more /home/Hadoop/fsimage.txt

fsimage

fsimage

 

由于未指定-p选项,默认为Ls,出来的结果和执行hadoop fs –ls –R一样。

例子2

hdfs oiv -i /data1/hadoop/dfs/name/current/fsimage_0000000000019372521 -o /home/hadoop/fsimage.xml -p XML

指定-p XML,将fsimage文件转换成XML格式,查看fsimage.xml

fsimage

fsimage

 

XML文件中包含了fsimage中的所有信息,比如inodeid、type、name、修改时间、权限、大小等等。

例子3:

FileDistribution是分析命名空间中文件大小的工具。为了运行该工具需要通过指定最大文件大小和段数定义一个整数范围[0,maxSize],该整数范围根据段数分割为若干段[0, s[1], …, s[n-1], maxSize],处理器计算有多少文件落入每个段中([s[i-1], s[i]),大于maxSize的文件总是落入最后的段中,即s[n-1], maxSize。输出文件被格式化为由tab分隔的包含Size列和NumFiles列的表,其中Size表示段的起始,NumFiles表示文件大小落入该段的文件数量。在使用FileDistribution处理器时还需要指定该处理器的参数maxSize和step,若未指定默认为0。示例如下:

hdfs oiv -i /data1/hadoop/dfs/name/current/fsimage_0000000000019372521 -o /home/hadoop/fsimage.fd -p FileDistribution maxSize 1000 step 5

查看结果文件fsimage.fd:

    1. head -10 fsimage.fd
    2. Processed 0 inodes.
    3. Size NumFiles
    4. 0 8302
    5. 2097152 474984
    6. 4194304 10995
    7. 6291456 6608
    8. 8388608 4452
    9. 10485760 5865
    10. 12582912 4747
    11. 14680064 2965
    12. tail -10 fsimage.fd
    13. 29725032448 1
    14. 33241956352 1
    15. 58212745216 1
    16. 58265174016 1
    17. 62084087808 1
    18. totalFiles = 605087
    19. totalDirectories = 100070
    20. totalBlocks = 725265
    21. totalSpace = 42583680916192
    22. maxFileSize = 62083011560

相关文章

hadoop搭建准备工作三台虚拟机:master、node1、node2检查时...
文件的更名和移动:    获取文件详细信息       遇...
目录一、背景1)小文件是如何产生的?2)文件块大小设置3)H...
目录一、概述二、HadoopDataNode多目录磁盘配置1)配置hdfs-...
平台搭建(伪分布式)伪分布式搭建在VM中搭建std-master修改...
 一、HDFS概述 1.1、HDFS产出背景及定义 1.1.1、HDFS产生...