This is an automated email from the ASF dual-hosted git repository.
wchevreuil pushed a commit to branch branch-2.2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.2 by this push:
new 9f6471a HBASE-26276 Allow HashTable/SyncTable to perform rawScan when
comparing cells (#3673)
9f6471a is described below
commit 9f6471a2c85f1abef15483542ce8749e413bd92d
Author: Wellington Ramos Chevreuil <[email protected]>
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 <[email protected]>
Signed-off-by: Viraj Jasani <[email protected]>
(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());