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