You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by ra...@apache.org on 2018/04/20 09:42:20 UTC
lens git commit: LENS-1510 : Adding config for hive principal .
Repository: lens
Updated Branches:
refs/heads/master 99a242c76 -> d0d9adf35
LENS-1510 : Adding config for hive principal .
Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/d0d9adf3
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/d0d9adf3
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/d0d9adf3
Branch: refs/heads/master
Commit: d0d9adf35ca476f28cb872285097309cdb6e55a6
Parents: 99a242c
Author: Rajitha R <ra...@apache.org>
Authored: Fri Apr 20 15:11:48 2018 +0530
Committer: Rajitha.R <ra...@IM0318-L0.corp.inmobi.com>
Committed: Fri Apr 20 15:11:48 2018 +0530
----------------------------------------------------------------------
.../java/org/apache/lens/driver/hive/HiveDriver.java | 11 +++++++++++
.../src/main/resources/hivedriver-default.xml | 8 ++++++++
.../org/apache/lens/server/api/LensConfConstants.java | 7 +++++++
src/site/apt/admin/hivedriver-config.apt | 14 +++++++++-----
.../server/drivers/hive/hive1/hivedriver-site.xml | 6 ++++++
5 files changed, 41 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lens/blob/d0d9adf3/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
----------------------------------------------------------------------
diff --git a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
index 3fd5d2c..61fef15 100644
--- a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
+++ b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
@@ -327,11 +327,22 @@ public class HiveDriver extends AbstractLensDriver {
*/
@Override
public void configure(Configuration conf, String driverType, String driverName) throws LensException {
+
super.configure(conf, driverType, driverName);
this.hiveConf = new HiveConf(conf, HiveDriver.class);
this.hiveConf.addResource(getConf());
+ if (hiveConf.getVar(HiveConf.ConfVars.HIVE_SERVER2_AUTHENTICATION)
+ .equals(HiveAuthFactory.AuthTypes.KERBEROS.toString())) {
+
+ log.info("set hive's server principal for hive driver as {}",
+ getConf().get(LensConfConstants.LENS_DRIVER_HIVE_PRINCIPAL));
+
+ hiveConf.setVar(HiveConf.ConfVars.HIVE_SERVER2_KERBEROS_PRINCIPAL,
+ getConf().get(LensConfConstants.LENS_DRIVER_HIVE_PRINCIPAL));
+ }
+
connectionClass = getConf().getClass(HIVE_CONNECTION_CLASS, EmbeddedThriftConnection.class,
ThriftConnection.class);
isEmbedded = (connectionClass.getName().equals(EmbeddedThriftConnection.class.getName()));
http://git-wip-us.apache.org/repos/asf/lens/blob/d0d9adf3/lens-driver-hive/src/main/resources/hivedriver-default.xml
----------------------------------------------------------------------
diff --git a/lens-driver-hive/src/main/resources/hivedriver-default.xml b/lens-driver-hive/src/main/resources/hivedriver-default.xml
index 2b2dc0b..d41e36a 100644
--- a/lens-driver-hive/src/main/resources/hivedriver-default.xml
+++ b/lens-driver-hive/src/main/resources/hivedriver-default.xml
@@ -23,6 +23,14 @@
<configuration>
+
+ <property>
+ <name>lens.driver.hive.kerberos.principal</name>
+ <value>hive/_HOST@APACHE.COM</value>
+ <description>Set principal name to be used for hive server.
+ </description>
+ </property>
+
<property>
<name>lens.driver.hive.connection.class</name>
<value>org.apache.lens.driver.hive.EmbeddedThriftConnection</value>
http://git-wip-us.apache.org/repos/asf/lens/blob/d0d9adf3/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java b/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
index 0e05d28..f14ae44 100644
--- a/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
+++ b/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
@@ -735,6 +735,13 @@ public final class LensConfConstants {
public static final String LENS_PRINCIPAL = SERVER_PFX
+ "principal";
+
+ /**
+ * Hive principal for kerberos authentication
+ */
+ public static final String LENS_DRIVER_HIVE_PRINCIPAL = DRIVER_PFX
+ + "hive.kerberos.principal";
+
// Statistics Store configuration keys
/**
* The Constant STATS_STORE_CLASS.
http://git-wip-us.apache.org/repos/asf/lens/blob/d0d9adf3/src/site/apt/admin/hivedriver-config.apt
----------------------------------------------------------------------
diff --git a/src/site/apt/admin/hivedriver-config.apt b/src/site/apt/admin/hivedriver-config.apt
index b1a8431..221c166 100644
--- a/src/site/apt/admin/hivedriver-config.apt
+++ b/src/site/apt/admin/hivedriver-config.apt
@@ -52,9 +52,11 @@ Hive driver configuration
*--+--+---+--+
|14|lens.driver.hive.cost.calculator.class|org.apache.lens.cube.query.cost.FactPartitionBasedQueryCostCalculator|Cost calculator class. By default calculating cost through fact partitions.|
*--+--+---+--+
-|15|lens.driver.hive.hs2.connection.expiry.delay|600000|The idle time (in milliseconds) for expiring connection from hivedriver to HiveServer2|
+|15|lens.driver.hive.driver.kerberos.principal|hive/_HOST@APACHE.COM|Set principal name to be used for hive server.|
*--+--+---+--+
-|16|lens.driver.hive.priority.ranges|VERY_HIGH,7.0,HIGH,30.0,NORMAL,90,LOW|Priority Ranges. The numbers are the costs of the query. \ |
+|16|lens.driver.hive.hs2.connection.expiry.delay|600000|The idle time (in milliseconds) for expiring connection from hivedriver to HiveServer2|
+*--+--+---+--+
+|17|lens.driver.hive.priority.ranges|VERY_HIGH,7.0,HIGH,30.0,NORMAL,90,LOW|Priority Ranges. The numbers are the costs of the query. \ |
| | | |The cost is calculated based on partition weights and fact weights. The interpretation of the default config is: \ |
| | | | \ |
| | | |cost \<= 7\ \ \ \ \ \ \ \ \ \ \ :\ \ \ \ \ Priority = VERY_HIGH \ |
@@ -70,10 +72,12 @@ Hive driver configuration
| | | |One use case in range tuning can be that you never want queries to run with VERY_HIGH, assuming no other changes, you'll modify the value of this param in hivedriver-site.xml to be HIGH,30.0,NORMAL,90,LOW\ |
| | | |via the configs, you can tune both the ranges and partition weights. this would give the end user more control. |
*--+--+---+--+
-|17|lens.driver.hive.query.hook.classes| |The query hook classes for hive driver. By default there are no hooks. To add a hook, you should look at the default implementation and from there it'll be easy to derive what value can be added through a new hook. Multiple hooks can be provided by providing comma seperated name of classes.|
+|18|lens.driver.hive.query.hook.classes| |The query hook classes for hive driver. By default there are no hooks. To add a hook, you should look at the default implementation and from there it'll be easy to derive what value can be added through a new hook. Multiple hooks can be provided by providing comma seperated name of classes.|
+*--+--+---+--+
+|19|lens.driver.hive.query.launching.constraint.factories| |Factories used to instantiate constraints enforced on queries by driver. A query will be launched only if all constraints pass. Every Factory should be an implementation of org.apache.lens.server.api.common.ConfigBasedObjectCreationFactory and create an implementation of org.apache.lens.server.api.query.constraint.QueryLaunchingConstraint.|
*--+--+---+--+
-|18|lens.driver.hive.query.launching.constraint.factories| |Factories used to instantiate constraints enforced on queries by driver. A query will be launched only if all constraints pass. Every Factory should be an implementation of org.apache.lens.server.api.common.ConfigBasedObjectCreationFactory and create an implementation of org.apache.lens.server.api.query.constraint.QueryLaunchingConstraint.|
+|20|lens.driver.hive.waiting.queries.selection.policy.factories| |Factories used to instantiate driver specific waiting queries selection policies. Every factory should be an implementation of org.apache.lens.server.api.common.ConfigBasedObjectCreationFactory and create an implementation of org.apache.lens.server.api.query.collect.WaitingQueriesSelectionPolicy.|
*--+--+---+--+
-|19|lens.driver.hive.waiting.queries.selection.policy.factories| |Factories used to instantiate driver specific waiting queries selection policies. Every factory should be an implementation of org.apache.lens.server.api.common.ConfigBasedObjectCreationFactory and create an implementation of org.apache.lens.server.api.query.collect.WaitingQueriesSelectionPolicy.|
+|21|lens.driver.hive.kerberos.principal| |Set principal name to be used for hive server.|
*--+--+---+--+
The configuration parameters and their default values
http://git-wip-us.apache.org/repos/asf/lens/blob/d0d9adf3/tools/conf/server/drivers/hive/hive1/hivedriver-site.xml
----------------------------------------------------------------------
diff --git a/tools/conf/server/drivers/hive/hive1/hivedriver-site.xml b/tools/conf/server/drivers/hive/hive1/hivedriver-site.xml
index 2e8e7fa..c0f2083 100644
--- a/tools/conf/server/drivers/hive/hive1/hivedriver-site.xml
+++ b/tools/conf/server/drivers/hive/hive1/hivedriver-site.xml
@@ -22,6 +22,12 @@
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
+
+ <property>
+ <name>lens.driver.hive.kerberos.principal</name>
+ <value>hive/_HOST@APACHE.COM</value>
+ </property>
+
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/tmp/hive/warehouse</value>