aboutsummaryrefslogtreecommitdiff
path: root/contrib/storage-hbase/src
diff options
context:
space:
mode:
authorPaul Rogers <progers@maprtech.com>2017-09-28 09:49:38 -0700
committerPaul Rogers <progers@maprtech.com>2017-10-11 13:14:56 -0700
commit42f7af22fc5d713aac07e057fd374ccd674e40df (patch)
treef3ca668122c6274f09078ec3b5066e9522f0cda5 /contrib/storage-hbase/src
parentfe84713169d410c40da80d6faf658ba2ac884ccc (diff)
DRILL-5830: Resolve regressions to MapR DB from DRILL-5546
- Back out HBase changes - Code cleanup - Test utilities - Fix for DRILL-5829 closes #968
Diffstat (limited to 'contrib/storage-hbase/src')
-rw-r--r--contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseGroupScan.java95
-rw-r--r--contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseRecordReader.java6
-rw-r--r--contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseScanSpec.java1
-rw-r--r--contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSchemaFactory.java4
-rw-r--r--contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePlugin.java4
-rw-r--r--contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSubScan.java9
-rw-r--r--contrib/storage-hbase/src/test/java/org/apache/drill/hbase/BaseHBaseTest.java2
7 files changed, 48 insertions, 73 deletions
diff --git a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseGroupScan.java b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseGroupScan.java
index 1ee1da812..2b8cf18ea 100644
--- a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseGroupScan.java
+++ b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseGroupScan.java
@@ -1,4 +1,4 @@
-/**
+/*
* 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
@@ -17,17 +17,22 @@
*/
package org.apache.drill.exec.store.hbase;
-import com.fasterxml.jackson.annotation.JacksonInject;
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Stopwatch;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.NavigableMap;
+import java.util.PriorityQueue;
+import java.util.Queue;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.concurrent.TimeUnit;
+
import org.apache.drill.common.exceptions.DrillRuntimeException;
import org.apache.drill.common.exceptions.ExecutionSetupException;
import org.apache.drill.common.expression.SchemaPath;
@@ -50,24 +55,18 @@ import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.RegionLocator;
-import org.apache.hadoop.hbase.util.Bytes;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.NavigableMap;
-import java.util.PriorityQueue;
-import java.util.Queue;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.concurrent.TimeUnit;
+import com.fasterxml.jackson.annotation.JacksonInject;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Stopwatch;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
@JsonTypeName("hbase-scan")
public class HBaseGroupScan extends AbstractGroupScan implements DrillHBaseConstants {
@@ -144,8 +143,8 @@ public class HBaseGroupScan extends AbstractGroupScan implements DrillHBaseConst
@Override
public GroupScan clone(List<SchemaPath> columns) {
HBaseGroupScan newScan = new HBaseGroupScan(this);
- newScan.columns = columns == null ? ALL_COLUMNS : columns;;
- newScan.verifyColumnsAndConvertStar();
+ newScan.columns = columns == null ? ALL_COLUMNS : columns;
+ newScan.verifyColumns();
return newScan;
}
@@ -177,37 +176,19 @@ public class HBaseGroupScan extends AbstractGroupScan implements DrillHBaseConst
} catch (IOException e) {
throw new DrillRuntimeException("Error getting region info for table: " + hbaseScanSpec.getTableName(), e);
}
- verifyColumnsAndConvertStar();
+ verifyColumns();
}
- private void verifyColumnsAndConvertStar() {
- boolean hasStarCol = false;
- LinkedHashSet<SchemaPath> requestedColumns = new LinkedHashSet<>();
-
+ private void verifyColumns() {
+ if (Utilities.isStarQuery(columns)) {
+ return;
+ }
for (SchemaPath column : columns) {
- // convert * into [row_key, cf1, cf2, ..., cf_n].
- if (column.equals(Utilities.STAR_COLUMN)) {
- hasStarCol = true;
- Set<byte[]> families = hTableDesc.getFamiliesKeys();
- requestedColumns.add(ROW_KEY_PATH);
- for (byte[] family : families) {
- SchemaPath colFamily = SchemaPath.getSimplePath(Bytes.toString(family));
- requestedColumns.add(colFamily);
- }
- } else {
- if (!(column.equals(ROW_KEY_PATH) ||
- hTableDesc.hasFamily(HBaseUtils.getBytes(column.getRootSegment().getPath())))) {
- DrillRuntimeException.format("The column family '%s' does not exist in HBase table: %s .",
- column.getRootSegment().getPath(), hTableDesc.getNameAsString());
- }
- requestedColumns.add(column);
+ if (!(column.equals(ROW_KEY_PATH) || hTableDesc.hasFamily(HBaseUtils.getBytes(column.getRootSegment().getPath())))) {
+ DrillRuntimeException.format("The column family '%s' does not exist in HBase table: %s .",
+ column.getRootSegment().getPath(), hTableDesc.getNameAsString());
}
}
-
- // since star column has been converted, reset this.cloumns.
- if (hasStarCol) {
- this.columns = new ArrayList<>(requestedColumns);
- }
}
@Override
diff --git a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseRecordReader.java b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseRecordReader.java
index d6c02b5aa..cae7ce412 100644
--- a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseRecordReader.java
+++ b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseRecordReader.java
@@ -126,12 +126,10 @@ public class HBaseRecordReader extends AbstractRecordReader implements DrillHBas
HBaseUtils.andFilterAtIndex(hbaseScan.getFilter(), HBaseUtils.LAST_FILTER, new FirstKeyOnlyFilter()));
}
} else {
- throw new IllegalArgumentException("HBaseRecordReader does not allow column *. Column * should have been converted to list of <row_key, column family1, column family2, ..., column family_n");
-// rowKeyOnly = false;
-// transformed.add(ROW_KEY_PATH);
+ rowKeyOnly = false;
+ transformed.add(ROW_KEY_PATH);
}
-
return transformed;
}
diff --git a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseScanSpec.java b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseScanSpec.java
index f9a585e69..797ec7fc2 100644
--- a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseScanSpec.java
+++ b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseScanSpec.java
@@ -93,5 +93,4 @@ public class HBaseScanSpec {
+ ", filter=" + (filter == null ? null : filter.toString())
+ "]";
}
-
}
diff --git a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSchemaFactory.java b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSchemaFactory.java
index 56dfc10c3..548b679e7 100644
--- a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSchemaFactory.java
+++ b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSchemaFactory.java
@@ -1,4 +1,4 @@
-/**
+/*
* 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
@@ -94,7 +94,5 @@ public class HBaseSchemaFactory implements SchemaFactory {
public String getTypeName() {
return HBaseStoragePluginConfig.NAME;
}
-
}
-
}
diff --git a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePlugin.java b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePlugin.java
index 81899cf60..62f351c45 100644
--- a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePlugin.java
+++ b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePlugin.java
@@ -1,4 +1,4 @@
-/**
+/*
* 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
@@ -154,7 +154,5 @@ public class HBaseStoragePlugin extends AbstractStoragePlugin {
private HBaseStoragePlugin getHBaseStoragePlugin() {
return HBaseStoragePlugin.this;
}
-
}
-
}
diff --git a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSubScan.java b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSubScan.java
index 302ccca4e..0527391a2 100644
--- a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSubScan.java
+++ b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSubScan.java
@@ -1,4 +1,4 @@
-/**
+/*
* 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
@@ -41,7 +41,10 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.google.common.base.Preconditions;
-// Class containing information for reading a single HBase region
+/**
+ * Contains information for reading a single HBase region
+ */
+
@JsonTypeName("hbase-region-scan")
public class HBaseSubScan extends AbstractBase implements SubScan {
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(HBaseSubScan.class);
@@ -210,12 +213,10 @@ public class HBaseSubScan extends AbstractBase implements SubScan {
+ ", filter=" + (getScanFilter() == null ? null : getScanFilter().toString())
+ ", regionServer=" + regionServer + "]";
}
-
}
@Override
public int getOperatorType() {
return CoreOperatorType.HBASE_SUB_SCAN_VALUE;
}
-
}
diff --git a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/BaseHBaseTest.java b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/BaseHBaseTest.java
index e12c77cc9..b957347c8 100644
--- a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/BaseHBaseTest.java
+++ b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/BaseHBaseTest.java
@@ -38,7 +38,7 @@ import com.google.common.io.Files;
public class BaseHBaseTest extends BaseTestQuery {
- private static final String HBASE_STORAGE_PLUGIN_NAME = "hbase";
+ public static final String HBASE_STORAGE_PLUGIN_NAME = "hbase";
protected static Configuration conf = HBaseConfiguration.create();