Hadoop常见重要命令行操作及命令作用(4)

XML处理器输出fsimage的xml文档,包含了fsimage中的所有信息,比如inodeid等。该处理器的输出支持XML工具的自动化处理和分析,由于XML语法格式的冗长,该处理器的输出也最大。

[root@master current]# hdfs oiv -i fsimage_0000000000000053234 -p XML -o fsimage.xml [root@master current]# more fsimage.xml

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。

[root@master current]# hdfs oiv -i fsimage_0000000000000053234 -o fsimage.fd -p FileDistribution 1000 step 5 Files processed: 1 Current: /app-logs/ambari-qa/logs/application_1430219478244_0003/slave2_45454 totalFiles = 534 totalDirectories = 199 totalBlocks = 537 totalSpace = 1151394477 maxFileSize = 119107289 [root@master current]# more fsimage.fd Size NumFiles 0 22 2097152 491 4194304 13 6291456 2 8388608 1 10485760 3 12582912 0

oev是(offline edits viewer(离线edits查看器)的缩写),该工具只操作文件因而并不需要hadoop集群处于运行状态。该工具提供了几个输出处理器,用于将输入文件转换为相关格式的输出文件,可以使用参数-p指定。
目前支持的输出格式有binary(hadoop使用的二进制格式)、xml(在不使用参数p时的默认输出格式)和stats(输出edits文件的统计信息)。
该工具支持的输入格式为binary和xml,其中的xml文件为该工具使用xml处理器的输出文件。
由于没有与stats格式对应的输入文件,所以一旦输出为stats格式将不可���再转换为原有格式。比如输入格式为bianry,输出格式为xml,可以通过将输入文件指定为原来的输出文件,将输出文件指定为原来的输入文件实现binary和xml的转换,而stats则不可以。

[root@master current]# hdfs oev -i edits_0000000000000042778-0000000000000042779 -o edits.xml [root@master current]# cat edits.xml <?xml version="1.0" encoding="UTF-8"?> <EDITS> <EDITS_VERSION>-47</EDITS_VERSION> <RECORD> <OPCODE>OP_START_LOG_SEGMENT</OPCODE> <DATA> <TXID>42778</TXID> </DATA> </RECORD> <RECORD> <OPCODE>OP_END_LOG_SEGMENT</OPCODE> <DATA> <TXID>42779</TXID> </DATA> </RECORD> </EDITS>

在输出文件中,每个RECORD记录了一次操作,当edits文件破损进而导致hadoop集群出现问题时,保存edits文件中正确的部分是可能的,可以通过将原有的bianry文件转换为xml文件,并手动编辑xml文件然后转回bianry文件来实现。最常见的edits文件破损情况是丢失关闭记录的部分(OPCODE为-1),关闭记录如下所示。如果在xml文件中没有关闭记录,可以在最后正确的记录后面添加关闭记录,关闭记录后面的记录都将被忽略。

<RECORD> <OPCODE>-1</OPCODE> <DATA> </DATA> </RECORD> 关于yarn [root@master liguodong]# yarn --help Usage: yarn [--config confdir] COMMAND where COMMAND is one of: resourcemanager run the ResourceManager nodemanager run a nodemanager on each slave rmadmin admin tools version print the version jar <jar> run a jar file application prints application(s) report/kill application node prints node report(s) logs dump container logs classpath prints the class path needed to get the Hadoop jar and the required libraries daemonlog get/set the log level for each daemon or CLASSNAME run the class named CLASSNAME Most commands print help when invoked w/o parameters.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2685ea5383b5310bb37ccf0b77ea28dd.html