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:48:42 UTC
[hbase] branch branch-2.4 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.4
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.4 by this push:
new 30ae596 HBASE-26276 Allow HashTable/SyncTable to perform rawScan when comparing cells (#3673)
30ae596 is described below
commit 30ae596308b59b48b96b6e6739f96b3bb8dea80c
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());