Details
Description
HFilePrettyPrinter have couple of small issues when -r option is used with hbase:meta region as argument:
1. Processing files in oldWals and recovered.edits directories
$ hbase org.apache.hadoop.hbase.io.hfile.HFilePrettyPrinter -v -r hbase:meta,,1 Number of region files found -> 3 Found file[1] -> hdfs://P3cluster/hbase/data/hbase/meta/1588230740/info/e1d395908f8c43d2b22bb3a630728ebf Found file[2] -> hdfs://P3cluster/hbase/data/hbase/meta/1588230740/info/e30faa185198449b9cb2eeb5589ebd1b Found file[3] -> hdfs://P3cluster/hbase/data/hbase/meta/1588230740/oldWALs/hlog.1428309293399 Scanning -> hdfs://P3cluster/hbase/data/hbase/meta/1588230740/info/e1d395908f8c43d2b22bb3a630728ebf Scanning -> hdfs://P3cluster/hbase/data/hbase/meta/1588230740/info/e30faa185198449b9cb2eeb5589ebd1b Scanning -> hdfs://P3cluster/hbase/data/hbase/meta/1588230740/oldWALs/hlog.1428309293399 2015-04-13 14:08:21,461 ERROR [main] hfile.HFilePrettyPrinter: Error reading hdfs://P3cluster/hbase/data/hbase/meta/1588230740/oldWALs/hlog.1428309293399 org.apache.hadoop.hbase.io.hfile.CorruptHFileException: Problem reading HFile Trailer from file hdfs://P3cluster/hbase/data/hbase/meta/1588230740/oldWALs/hlog.1428309293399
2. If full region name is passed as argument we have wrong encoded region name returned:
hbase org.apache.hadoop.hbase.io.hfile.HFilePrettyPrinter -v -r hbase:meta,,1.1588230740 region dir -> hdfs://P3cluster/hbase/data/hbase/meta/104563571 2015-04-13 14:21:43,012 INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available 2015-04-13 14:21:43,711 INFO [main] util.ChecksumType: Checksum using org.apache.hadoop.util.PureJavaCrc32 2015-04-13 14:21:43,717 INFO [main] util.ChecksumType: Checksum can use org.apache.hadoop.util.PureJavaCrc32C 2015-04-13 14:21:43,899 ERROR [main] hfile.HFilePrettyPrinter: Error parsing command-line options java.io.FileNotFoundException: File hdfs://P3cluster/hbase/data/hbase/meta/104563571 does not exist.
I have modified HFilePrettyPrinter.java to address this issues. Patch is coming soon.