You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by bh...@apache.org on 2020/09/11 20:06:45 UTC
[hbase] branch branch-2 updated: Revert "HBASE-24974: Provide a
flexibility to print only row key and filter for multiple tables in the
WALPrettyPrinter (#2387)"
This is an automated email from the ASF dual-hosted git repository.
bharathv pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new a2979db Revert "HBASE-24974: Provide a flexibility to print only row key and filter for multiple tables in the WALPrettyPrinter (#2387)"
a2979db is described below
commit a2979db27df405a7305b1545d41907b366ec00ce
Author: Bharath Vissapragada <bh...@apache.org>
AuthorDate: Fri Sep 11 13:06:17 2020 -0700
Revert "HBASE-24974: Provide a flexibility to print only row key and filter for multiple tables in the WALPrettyPrinter (#2387)"
This reverts commit b39199f43b18af0c4dd8e23d4a21cd45b9ec82f0.
---
.../apache/hadoop/hbase/wal/WALPrettyPrinter.java | 62 ++++++----------------
1 file changed, 17 insertions(+), 45 deletions(-)
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALPrettyPrinter.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALPrettyPrinter.java
index fb7ec48..6084e0a 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALPrettyPrinter.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALPrettyPrinter.java
@@ -21,14 +21,11 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
@@ -37,6 +34,7 @@ import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.PrivateCellUtil;
+import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.Tag;
import org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader;
import org.apache.hadoop.hbase.util.Bytes;
@@ -81,12 +79,9 @@ public class WALPrettyPrinter {
private boolean outputJSON;
// The following enable filtering by sequence, region, and row, respectively
private long sequence;
-
- // List of tables for filter
- private final Set<String> tableSet;
+ private String table;
private String region;
private String row;
- private boolean outputOnlyRowKey;
// enable in order to output a single list of transactions from several files
private boolean persistentOutput;
private boolean firstTxn;
@@ -104,10 +99,9 @@ public class WALPrettyPrinter {
outputValues = false;
outputJSON = false;
sequence = -1;
- tableSet = new HashSet<>();
+ table = null;
region = null;
row = null;
- outputOnlyRowKey = false;
persistentOutput = false;
firstTxn = true;
out = System.out;
@@ -198,11 +192,11 @@ public class WALPrettyPrinter {
}
/**
- * Sets the tables filter. Only log entries for these tables are printed.
- * @param tablesWithDelimiter table names separated with comma.
+ * Sets the table filter. Only log entries for this table are printed.
+ * @param table table name to set.
*/
- public void setTableFilter(String tablesWithDelimiter) {
- Collections.addAll(tableSet, tablesWithDelimiter.split(","));
+ public void setTableFilter(String table) {
+ this.table = table;
}
/**
* sets the region by which output will be filtered
@@ -216,7 +210,7 @@ public class WALPrettyPrinter {
}
/**
- * sets the row key by which output will be filtered
+ * sets the region by which output will be filtered
*
* @param row
* when not null, serves as a filter; only log entries from this row
@@ -227,13 +221,6 @@ public class WALPrettyPrinter {
}
/**
- * Option to print the row key only in case you just need the row keys from the WAL
- */
- public void setOutputOnlyRowKey() {
- this.outputOnlyRowKey = true;
- }
-
- /**
* sets the position to start seeking the WAL file
* @param position
* initial position to start seeking the given WAL file
@@ -332,8 +319,7 @@ public class WALPrettyPrinter {
Map<String, Object> txn = key.toStringMap();
long writeTime = key.getWriteTime();
// check output filters
- if (!tableSet.isEmpty() &&
- !tableSet.contains(txn.get("table").toString())) {
+ if (table != null && !((TableName) txn.get("table")).toString().equals(table)) {
continue;
}
if (sequence >= 0 && ((Long) txn.get("sequence")) != sequence) {
@@ -346,7 +332,7 @@ public class WALPrettyPrinter {
List<Map<String, Object>> actions = new ArrayList<>();
for (Cell cell : edit.getCells()) {
// add atomic operation to txn
- Map<String, Object> op = new HashMap<>(toStringMap(cell, outputOnlyRowKey));
+ Map<String, Object> op = new HashMap<>(toStringMap(cell));
if (outputValues) {
op.put("value", Bytes.toStringBinary(CellUtil.cloneValue(cell)));
}
@@ -401,20 +387,16 @@ public class WALPrettyPrinter {
out.println("cell total size sum: " + op.get("total_size_sum"));
}
- public static Map<String, Object> toStringMap(Cell cell, boolean printRowKeyOnly) {
+ public static Map<String, Object> toStringMap(Cell cell) {
Map<String, Object> stringMap = new HashMap<>();
stringMap.put("row",
- Bytes.toStringBinary(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength()));
-
- if (printRowKeyOnly) {
- return stringMap;
- }
+ Bytes.toStringBinary(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength()));
stringMap.put("type", cell.getType());
stringMap.put("family", Bytes.toStringBinary(cell.getFamilyArray(), cell.getFamilyOffset(),
- cell.getFamilyLength()));
+ cell.getFamilyLength()));
stringMap.put("qualifier",
- Bytes.toStringBinary(cell.getQualifierArray(), cell.getQualifierOffset(),
- cell.getQualifierLength()));
+ Bytes.toStringBinary(cell.getQualifierArray(), cell.getQualifierOffset(),
+ cell.getQualifierLength()));
stringMap.put("timestamp", cell.getTimestamp());
stringMap.put("vlen", cell.getValueLength());
if (cell.getTagsLength() > 0) {
@@ -423,17 +405,13 @@ public class WALPrettyPrinter {
while (tagsIterator.hasNext()) {
Tag tag = tagsIterator.next();
tagsString
- .add((tag.getType()) + ":" + Bytes.toStringBinary(Tag.cloneValue(tag)));
+ .add((tag.getType()) + ":" + Bytes.toStringBinary(Tag.cloneValue(tag)));
}
stringMap.put("tag", tagsString);
}
return stringMap;
}
- public static Map<String, Object> toStringMap(Cell cell) {
- return toStringMap(cell, false);
- }
-
public static void main(String[] args) throws IOException {
run(args);
}
@@ -453,14 +431,11 @@ public class WALPrettyPrinter {
options.addOption("h", "help", false, "Output help message");
options.addOption("j", "json", false, "Output JSON");
options.addOption("p", "printvals", false, "Print values");
- options.addOption("t", "tables", true,
- "Table names (comma separated) to filter by; eg: test1,test2,test3 ");
+ options.addOption("t", "table", true, "Table name to filter by.");
options.addOption("r", "region", true,
"Region to filter by. Pass encoded region name; e.g. '9192caead6a5a20acb4454ffbc79fa14'");
options.addOption("s", "sequence", true,
"Sequence to filter by. Pass sequence number.");
- options.addOption("k", "outputOnlyRowKey", false,
- "Print only row keys");
options.addOption("w", "row", true, "Row to filter by. Pass row name.");
options.addOption("g", "goto", true, "Position to seek to in the file");
@@ -482,9 +457,6 @@ public class WALPrettyPrinter {
if (cmd.hasOption("j")) {
printer.enableJSON();
}
- if (cmd.hasOption("k")) {
- printer.setOutputOnlyRowKey();
- }
if (cmd.hasOption("t")) {
printer.setTableFilter(cmd.getOptionValue("t"));
}