You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by wc...@apache.org on 2021/09/10 15:47:27 UTC

[hbase] branch branch-2 updated: HBASE-26276 Allow HashTable/SyncTable to perform rawScan when comparing cells (#3673)

This is an automated email from the ASF dual-hosted git repository.

wchevreuil 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 126f6bc  HBASE-26276 Allow HashTable/SyncTable to perform rawScan when comparing cells (#3673)
126f6bc is described below

commit 126f6bc5202974761cf866c88e1165a1d4a1522c
Author: Wellington Ramos Chevreuil <wc...@apache.org>
AuthorDate: Fri Sep 10 16:26:10 2021 +0100

    HBASE-26276 Allow HashTable/SyncTable to perform rawScan when comparing cells (#3673)
    
    Signed-off-by: Duo Zhang <zh...@apache.org>
    Signed-off-by: Viraj Jasani <vj...@apache.org>
    (cherry-picked from commit ee632bdcaefe34f2f51d2f528a480bd492e3a2ae)
---
 .../apache/hadoop/hbase/mapreduce/HashTable.java   | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HashTable.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HashTable.java
index b3e2122..5ec7c48 100644
--- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HashTable.java
+++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HashTable.java
@@ -98,6 +98,7 @@ public class HashTable extends Configured implements Tool {
     long startTime = 0;
     long endTime = 0;
     boolean ignoreTimestamps;
+    boolean rawScan;
 
     List<ImmutableBytesWritable> partitions;
 
@@ -136,6 +137,7 @@ public class HashTable extends Configured implements Tool {
       if (endTime != 0) {
         p.setProperty("endTimestamp", Long.toString(endTime));
       }
+      p.setProperty("rawScan", Boolean.toString(rawScan));
 
       try (OutputStreamWriter osw = new OutputStreamWriter(fs.create(path), Charsets.UTF_8)) {
         p.store(osw, null);
@@ -173,6 +175,11 @@ public class HashTable extends Configured implements Tool {
         versions = Integer.parseInt(versionString);
       }
 
+      String rawScanString = p.getProperty("rawScan");
+      if (rawScanString != null) {
+        rawScan = Boolean.parseBoolean(rawScanString);
+      }
+
       String startTimeString = p.getProperty("startTimestamp");
       if (startTimeString != null) {
         startTime = Long.parseLong(startTimeString);
@@ -202,11 +209,13 @@ public class HashTable extends Configured implements Tool {
       if (!isTableEndRow(stopRow)) {
         scan.setStopRow(stopRow);
       }
-      if(families != null) {
-        for(String fam : families.split(",")) {
+      if (families != null) {
+        for (String fam : families.split(",")) {
           scan.addFamily(Bytes.toBytes(fam));
         }
       }
+      scan.setRaw(rawScan);
+
       return scan;
     }
 
@@ -304,6 +313,7 @@ public class HashTable extends Configured implements Tool {
       if (versions >= 0) {
         sb.append(", versions=").append(versions);
       }
+      sb.append(", rawScan=").append(rawScan);
       if (startTime != 0) {
         sb.append("startTime=").append(startTime);
       }
@@ -476,7 +486,6 @@ public class HashTable extends Configured implements Tool {
     private long batchSize = 0;
     boolean ignoreTimestamps;
 
-
     public ResultHasher() {
       try {
         digest = MessageDigest.getInstance("MD5");
@@ -626,6 +635,7 @@ public class HashTable extends Configured implements Tool {
     System.err.println("                   Ignored if no starttime specified.");
     System.err.println(" scanbatch         scanner batch size to support intra row scans");
     System.err.println(" versions          number of cell versions to include");
+    System.err.println(" rawScan           performs a raw scan (false if omitted)");
     System.err.println(" families          comma-separated list of families to include");
     System.err.println(" ignoreTimestamps  if true, ignores cell timestamps");
     System.err.println("                   when calculating hashes");
@@ -707,6 +717,12 @@ public class HashTable extends Configured implements Tool {
           continue;
         }
 
+        final String rawScanArgKey = "--rawScan=";
+        if (cmd.startsWith(rawScanArgKey)) {
+          tableHash.rawScan = Boolean.parseBoolean(cmd.substring(rawScanArgKey.length()));
+          continue;
+        }
+
         final String familiesArgKey = "--families=";
         if (cmd.startsWith(familiesArgKey)) {
           tableHash.families = cmd.substring(familiesArgKey.length());