You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ng...@apache.org on 2022/01/26 01:52:16 UTC

[hive] branch master updated: HIVE-25809: Implement getURIForAuth() API in the kudu storage handler (Saihemanth Gantasala via Naveen Gangam)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 6252bc0  HIVE-25809: Implement getURIForAuth() API in the kudu storage handler (Saihemanth Gantasala via Naveen Gangam)
6252bc0 is described below

commit 6252bc042145c40d32846c5616438ff5c856a2c7
Author: saihemanth <sa...@cloudera.com>
AuthorDate: Tue Dec 14 10:34:41 2021 -0800

    HIVE-25809: Implement getURIForAuth() API in the kudu storage handler (Saihemanth Gantasala via Naveen Gangam)
---
 .../apache/hadoop/hive/kudu/KuduStorageHandler.java   | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/kudu-handler/src/java/org/apache/hadoop/hive/kudu/KuduStorageHandler.java b/kudu-handler/src/java/org/apache/hadoop/hive/kudu/KuduStorageHandler.java
index 615d5c3..82cf64f 100644
--- a/kudu-handler/src/java/org/apache/hadoop/hive/kudu/KuduStorageHandler.java
+++ b/kudu-handler/src/java/org/apache/hadoop/hive/kudu/KuduStorageHandler.java
@@ -18,6 +18,8 @@
 package org.apache.hadoop.hive.kudu;
 
 import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -34,12 +36,14 @@ import org.apache.hadoop.hive.metastore.api.Table;
 import org.apache.hadoop.hive.ql.exec.Utilities;
 import org.apache.hadoop.hive.ql.metadata.DefaultStorageHandler;
 import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.metadata.HiveStorageHandler;
 import org.apache.hadoop.hive.ql.metadata.HiveStoragePredicateHandler;
 import org.apache.hadoop.hive.ql.metadata.StorageHandlerInfo;
 import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
 import org.apache.hadoop.hive.ql.plan.TableDesc;
 import org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
 import org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider;
+import org.apache.hadoop.hive.ql.security.authorization.HiveCustomStorageHandlerUtils;
 import org.apache.hadoop.hive.serde2.AbstractSerDe;
 import org.apache.hadoop.hive.serde2.Deserializer;
 import org.apache.hadoop.mapred.InputFormat;
@@ -53,10 +57,12 @@ import org.slf4j.LoggerFactory;
 /**
  * Provides a HiveStorageHandler implementation for Apache Kudu.
  */
-public class KuduStorageHandler extends DefaultStorageHandler implements HiveStoragePredicateHandler {
+public class KuduStorageHandler extends DefaultStorageHandler implements HiveStoragePredicateHandler, HiveStorageHandler {
 
   private static final Logger LOG = LoggerFactory.getLogger(KuduStorageHandler.class);
 
+  private static final String KUDU_PREFIX = "kudu:";
+
   private static final String KUDU_PROPERTY_PREFIX = "kudu.";
 
   /** Table Properties. Used in the hive table definition when creating a new table. */
@@ -155,6 +161,17 @@ public class KuduStorageHandler extends DefaultStorageHandler implements HiveSto
     }
   }
 
+  @Override
+  public URI getURIForAuth(Table table) throws URISyntaxException {
+    Map<String, String> tableProperties = HiveCustomStorageHandlerUtils.getTableProperties(table);
+    String host_name = tableProperties.get(KUDU_MASTER_ADDRS_KEY) != null ?
+            tableProperties.get(KUDU_MASTER_ADDRS_KEY) : conf.get(KUDU_MASTER_ADDRS_KEY);
+    Preconditions.checkNotNull(host_name, "Set Table property " + conf);
+    String table_name = tableProperties.get(KUDU_TABLE_NAME_KEY);
+    Preconditions.checkNotNull(table_name, "Set Table property " + KUDU_TABLE_NAME_KEY);
+    return new URI(KUDU_PREFIX+"//"+host_name+"/"+table_name);
+  }
+
   /**
    * Gives the storage handler a chance to decompose a predicate.
    * The storage handler should analyze the predicate and return the portion of it which