/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.hadoop.hbase.regionserver.wal; import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintStream; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.commons.cli.PosixParser; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.classification.InterfaceStability; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.FSUtils; import org.apache.hadoop.hbase.HBaseInterfaceAudience; import org.apache.hadoop.hbase.wal.WALPrettyPrinter; import org.codehaus.jackson.map.ObjectMapper; /** * HLogPrettyPrinter prints the contents of a given HLog with a variety of * options affecting formatting and extent of content. * * It targets two usage cases: pretty printing for ease of debugging directly by * humans, and JSON output for consumption by monitoring and/or maintenance * scripts. * * It can filter by row, region, or sequence id. * * It can also toggle output of values. * * @deprecated use the "hbase wal" command */ @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS) @InterfaceStability.Evolving @Deprecated public class HLogPrettyPrinter extends WALPrettyPrinter { /** * Basic constructor that simply initializes values to reasonable defaults. */ public HLogPrettyPrinter() { this(false, false, -1l, null, null, false, System.out); } /** * Fully specified constructor. * * @param outputValues * when true, enables output of values along with other log * information * @param outputJSON * when true, enables output in JSON format rather than a * "pretty string" * @param sequence * when nonnegative, serves as a filter; only log entries with this * sequence id will be printed * @param region * when not null, serves as a filter; only log entries from this * region will be printed * @param row * when not null, serves as a filter; only log entries from this row * will be printed * @param persistentOutput * keeps a single list running for multiple files. if enabled, the * endPersistentOutput() method must be used! * @param out * Specifies an alternative to stdout for the destination of this * PrettyPrinter's output. */ public HLogPrettyPrinter(boolean outputValues, boolean outputJSON, long sequence, String region, String row, boolean persistentOutput, PrintStream out) { super(outputValues, outputJSON, sequence, region, row, persistentOutput, out); } public static void main(String[] args) throws IOException { WALPrettyPrinter.main(args); } }