一、离线编辑日志浏览器(Offline Edits Viewer)
1.概述
离线编辑日志浏览器(Offline Edit Viewer)是用于解析编辑日志文件(Edits Log)的工具。处理器在对于不同格式之间的转换非常有用,包括将原始的二进制文件转换成更容易阅读和编辑的XML格式。
该工具可以解析(Hadoop 0.19)及更高版本的EditsLog文件格式。该工具仅在文件上运行,不需要运行Hadoop集群。
支持以下输入格式
·二进制(binary):Hadoop内部使用产生的二进制格式。
·XML:由XML处理器产生的XMl格式,适用于文件名具有.xm扩展名的文件。
支持的输出格式(输出的格式在没有特殊要求下,可以转换成原始的Edits):
·二进制(binary):Hadoop内部使用产生的二进制格式。
·XML:xml格式
·stats: 打印统计信息,这个格式不能重新转换回Edits文件。
2.用法
·xml处理器
xml处理器可以创建一个包含edits日志文件信息的xml文件。用户可以通过-i和-o指定输入文件和输出文件。
hdfs oev -p xml -i edits -o edits.xml
hdfs oev -p xml -i edits_0000000000000089385-0000000000000089412 -o /opt/test1.xml
生成的test1.xml文件
原来的edits文件,二进制,看不懂。
xml处理器是Oddline Edits Viewer 的默认处理器,可以省略 -i
hdfs oev -i edits -o edits.xml
·二进制处理器
二进制处理器与XML处理器相反,二进制处理器,用户通过-i和-o来指定输入的xml文件和输出的二进制文件。
hdfs oev -p binary -i edits.xml -o edits
hdfs oev -p binary -i test1.xml -o edittest1
重新将xml文件转换回二进制文件。
·Stats Processor
stats处理器是用于聚合edits日志文件中包含的操作码的技术。用胡可以通过-p选项来指定处理器。
hdfs oev -p stats -i edits -o edits.stats
hdfs oev -p stats -i edittest1 -o statstest1
VERSION : -64
OP_ADD ( 0): 2
OP_RENAME_OLD ( 1): 0
OP_DELETE ( 2): 2
OP_MKDIR ( 3): 6
OP_SET_REPLICATION ( 4): 0
OP_DATANODE_ADD ( 5): 0
OP_DATANODE_REMOVE ( 6): 0
OP_SET_PERMISSIONS ( 7): 0
OP_SET_OWNER ( 8): 0
OP_CLOSE ( 9): 2
OP_SET_GENSTAMP_V1 ( 10): 0
OP_SET_NS_QUOTA ( 11): 0
OP_CLEAR_NS_QUOTA ( 12): 0
OP_TIMES ( 13): 0
OP_SET_QUOTA ( 14): 0
OP_RENAME ( 15): 2
OP_CONCAT_DELETE ( 16): 0
OP_SYMLINK ( 17): 0
OP_GET_DELEGATION_TOKEN ( 18): 0
OP_RENEW_DELEGATION_TOKEN ( 19): 0
OP_CANCEL_DELEGATION_TOKEN ( 20): 0
OP_UPDATE_MASTER_KEY ( 21): 0
OP_REASSIGN_LEASE ( 22): 0
OP_END_LOG_SEGMENT ( 23): 1
OP_START_LOG_SEGMENT ( 24): 1
OP_UPDATE_BLOCKS ( 25): 0
OP_CREATE_SNAPSHOT ( 26): 0
OP_DELETE_SNAPSHOT ( 27): 0
OP_RENAME_SNAPSHOT ( 28): 0
OP_ALLOW_SNAPSHOT ( 29): 0
OP_DISALLOW_SNAPSHOT ( 30): 0
OP_SET_GENSTAMP_V2 ( 31): 2
OP_ALLOCATE_BLOCK_ID ( 32): 2
OP_ADD_BLOCK ( 33): 2
OP_ADD_CACHE_DIRECTIVE ( 34): 0
OP_REMOVE_CACHE_DIRECTIVE ( 35): 0
OP_ADD_CACHE_POOL ( 36): 0
OP_MODIFY_CACHE_POOL ( 37): 0
OP_REMOVE_CACHE_POOL ( 38): 0
OP_MODIFY_CACHE_DIRECTIVE ( 39): 0
OP_SET_ACL ( 40): 6
OP_ROLLING_UPGRADE_START ( 41): 0
OP_ROLLING_UPGRADE_FINALIZE ( 42): 0
OP_SET_XATTR ( 43): 0
OP_REMOVE_XATTR ( 44): 0
OP_SET_STORAGE_POLICY ( 45): 0
OP_TRUNCATE ( 46): 0
OP_APPEND ( 47): 0
OP_SET_QUOTA_BY_STORAGETYPE ( 48): 0
OP_ADD_ERASURE_CODING_POLICY ( 49): 0
OP_ENABLE_ERASURE_CODING_POLIC ( 50): 0
OP_DISABLE_ERASURE_CODING_POLI ( 51): 0
OP_REMOVE_ERASURE_CODING_POLIC ( 52): 0
OP_INVALID ( -1): 0
输出格式是冒号分隔的两列:opCode和OpCodeCount。每个OpCode代表应用于NameNode上的特定操作。
二、Offline Image Viewer
Offline Image Viewer是一个能转换fsimage文件的内容,变成用户方便阅读的格式,并且提供只读的WebHDFS API来允许线下分析及检测Hadoop集群的命名空间。可以相对快速的处理非常大的image文件。可以处理Hadoop versions 2.4版本以及更高版本。如果想处理低版本的格式,需要使用Hadoop 2.3 的Offline Image Viewer 或者使用 oiv_legacy命令。如果此工具不能处理一个image文件,它将会干净的退出。Offline Image Viewer不需要运行Hadoop集群,它的操作完全脱机。
Offline Image Viewer 提供了下面的输出:
·Web是默认的输出处理器,这个处理器启动一个HTTP服务来公开只读的WebHDFS API 。用户可以通过使用HTTP REST API来进行交互式的访问命名空间。
·XML创建一个包含所有fsimage信息的XML文档。该处理器的输出可以通过XML工具进行自动处理和分析。由于XML语法冗长,用此输出,将会生成最大的输出量。
·FileDistribution是一个分析命名空间image文件大小的工具。运行工具之前,需要定义一串整型数字[0,maxSize],指maxSize和步长。这一串的整型数字被划分为一些小段:
[0, s[1] ,…, s[n-1], maxSize ],处理器会为每个小段[s[i-1],s[i]]计算系统中有多少文件对应到这段,超过maxSize的文件将会落到最后一段。默认情况下,输出文件时一个以tab分隔的2列表:Size和NumFiles,Size表示这一段的开始,numFiles是文件大小刚好落在当前段的文件数目。通过指定-format 选项,输出文件将会是用户可读的格式,而不是在Size列中的字节格式。另外Size将会转变成SizeRange列。
·
使用
Web Processor
Web Processor 启动一个HTTP服务器来提供只读的WebHDFS API 。用户可以通过 -addr选项来指定默认的监听端口(默认是localhost:5978)
开启
hdfs oiv -i fsimage
当前为sercure mode,不支持开启webImageViewer.