You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by tm...@apache.org on 2019/05/24 02:38:20 UTC

[impala] branch master updated: IMPALA-4271: Introduce the new Kudu storage handler

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

tmarshall pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git


The following commit(s) were added to refs/heads/master by this push:
     new c955276  IMPALA-4271: Introduce the new Kudu storage handler
c955276 is described below

commit c9552768772b66d040f0d731ccf79fa55d3fdc97
Author: Hao Hao <ha...@cloudera.com>
AuthorDate: Thu May 16 16:32:41 2019 -0700

    IMPALA-4271: Introduce the new Kudu storage handler
    
    This commit introduces the new Kudu storage handler
    'org.apache.kudu.hive.KuduStorageHandler' that is used in Kudu/HMS
    integration. Tables with either the legacy storage handler
    'com.cloudera.kudu.hive.KuduStorageHandler' or the new one are now
    considered as Kudu tables. The actual work of adopting the new storage
    handler will be addressed in a series of follow-up patches, which rely
    on it to support Kudu/HMS integration in Impala.
    
    Change-Id: I75bcd5246005f4e35251aef9219f4d07eeb87dc6
    Reviewed-on: http://gerrit.cloudera.org:8080/13358
    Reviewed-by: Thomas Marshall <tm...@cloudera.com>
    Reviewed-by: Alexey Serbin <as...@cloudera.com>
    Reviewed-by: Andrew Wong <aw...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 .../java/org/apache/impala/analysis/CreateTableStmt.java  |  6 +++---
 fe/src/main/java/org/apache/impala/catalog/KuduTable.java | 15 ++++++++++++---
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/fe/src/main/java/org/apache/impala/analysis/CreateTableStmt.java b/fe/src/main/java/org/apache/impala/analysis/CreateTableStmt.java
index a344ef5..b334865 100644
--- a/fe/src/main/java/org/apache/impala/analysis/CreateTableStmt.java
+++ b/fe/src/main/java/org/apache/impala/analysis/CreateTableStmt.java
@@ -219,7 +219,7 @@ public class CreateTableStmt extends StatementBase {
    */
   private void analyzeKuduFormat(Analyzer analyzer) throws AnalysisException {
     if (getFileFormat() != THdfsFileFormat.KUDU) {
-      if (KuduTable.KUDU_STORAGE_HANDLER.equals(
+      if (KuduTable.KUDU_LEGACY_STORAGE_HANDLER.equals(
           getTblProperties().get(KuduTable.KEY_STORAGE_HANDLER))) {
         throw new AnalysisException(KUDU_STORAGE_HANDLER_ERROR_MESSAGE);
       }
@@ -262,12 +262,12 @@ public class CreateTableStmt extends StatementBase {
 
     // Only the Kudu storage handler may be specified for Kudu tables.
     String handler = getTblProperties().get(KuduTable.KEY_STORAGE_HANDLER);
-    if (handler != null && !handler.equals(KuduTable.KUDU_STORAGE_HANDLER)) {
+    if (handler != null && !handler.equals(KuduTable.KUDU_LEGACY_STORAGE_HANDLER)) {
       throw new AnalysisException("Invalid storage handler specified for Kudu table: " +
           handler);
     }
     putGeneratedKuduProperty(KuduTable.KEY_STORAGE_HANDLER,
-        KuduTable.KUDU_STORAGE_HANDLER);
+        KuduTable.KUDU_LEGACY_STORAGE_HANDLER);
 
     String masterHosts = getTblProperties().get(KuduTable.KEY_MASTER_HOSTS);
     if (Strings.isNullOrEmpty(masterHosts)) {
diff --git a/fe/src/main/java/org/apache/impala/catalog/KuduTable.java b/fe/src/main/java/org/apache/impala/catalog/KuduTable.java
index 1b5defd..e751419 100644
--- a/fe/src/main/java/org/apache/impala/catalog/KuduTable.java
+++ b/fe/src/main/java/org/apache/impala/catalog/KuduTable.java
@@ -70,11 +70,15 @@ public class KuduTable extends Table implements FeKuduTable {
   // with older versions.
   public static final String KEY_MASTER_HOSTS = "kudu.master_addresses";
 
+  // Kudu specific value for the legacy storage handler table property keyed by
+  // KEY_STORAGE_HANDLER. This is expected to be deprecated eventually.
+  public static final String KUDU_LEGACY_STORAGE_HANDLER =
+      "com.cloudera.kudu.hive.KuduStorageHandler";
+
   // Kudu specific value for the storage handler table property keyed by
   // KEY_STORAGE_HANDLER.
-  // TODO: Fix the storage handler name (see IMPALA-4271).
   public static final String KUDU_STORAGE_HANDLER =
-      "com.cloudera.kudu.hive.KuduStorageHandler";
+      "org.apache.kudu.hive.KuduStorageHandler";
 
   // Key to specify the number of tablet replicas.
   public static final String KEY_TABLET_REPLICAS = "kudu.num_tablet_replicas";
@@ -120,8 +124,13 @@ public class KuduTable extends Table implements FeKuduTable {
   @Override
   public List<Column> getColumnsInHiveOrder() { return getColumns(); }
 
+  public static boolean isKuduStorageHandler(String handler) {
+    return handler != null && (handler.equals(KUDU_LEGACY_STORAGE_HANDLER) ||
+                               handler.equals(KUDU_STORAGE_HANDLER));
+  }
+
   public static boolean isKuduTable(org.apache.hadoop.hive.metastore.api.Table msTbl) {
-    return KUDU_STORAGE_HANDLER.equals(msTbl.getParameters().get(KEY_STORAGE_HANDLER));
+    return isKuduStorageHandler(msTbl.getParameters().get(KEY_STORAGE_HANDLER));
   }
 
   @Override