You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by st...@apache.org on 2017/11/09 01:32:26 UTC

[05/14] hive git commit: HIVE-16930: HoS should verify the value of Kerberos principal and keytab file before adding them to spark-submit command parameters (Yibing Shi via Chaoyu Tang)

HIVE-16930: HoS should verify the value of Kerberos principal and keytab file before adding them to spark-submit command parameters (Yibing Shi via Chaoyu Tang)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/aaa440f3
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/aaa440f3
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/aaa440f3

Branch: refs/heads/branch-2.3
Commit: aaa440f35fb47648fa7b412280f01e939a83cb61
Parents: cf64bb9
Author: Chaoyu Tang <ct...@cloudera.com>
Authored: Thu Jun 22 16:53:55 2017 -0400
Committer: Sahil Takiar <st...@cloudera.com>
Committed: Tue Nov 7 08:15:47 2017 -0800

----------------------------------------------------------------------
 .../hive/spark/client/SparkClientImpl.java      | 35 +++++++++++---------
 1 file changed, 19 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/aaa440f3/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java
----------------------------------------------------------------------
diff --git a/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java b/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java
index d4b63f0..5c42bcc 100644
--- a/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java
+++ b/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java
@@ -54,6 +54,7 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.hive.conf.Constants;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
@@ -405,22 +406,24 @@ class SparkClientImpl implements SparkClient {
         String principal = SecurityUtil.getServerPrincipal(hiveConf.getVar(ConfVars.HIVE_SERVER2_KERBEROS_PRINCIPAL),
             "0.0.0.0");
         String keyTabFile = hiveConf.getVar(ConfVars.HIVE_SERVER2_KERBEROS_KEYTAB);
-        if (hiveConf.getBoolVar(HiveConf.ConfVars.HIVE_SERVER2_ENABLE_DOAS)) {
-          List<String> kinitArgv = Lists.newLinkedList();
-          kinitArgv.add("kinit");
-          kinitArgv.add(principal);
-          kinitArgv.add("-k");
-          kinitArgv.add("-t");
-          kinitArgv.add(keyTabFile + ";");
-          kinitArgv.addAll(argv);
-          argv = kinitArgv;
-        } else {
-          // if doAs is not enabled, we pass the principal/keypad to spark-submit in order to
-          // support the possible delegation token renewal in Spark
-          argv.add("--principal");
-          argv.add(principal);
-          argv.add("--keytab");
-          argv.add(keyTabFile);
+        if (StringUtils.isNotBlank(principal) && StringUtils.isNotBlank(keyTabFile)) {
+          if (hiveConf.getBoolVar(HiveConf.ConfVars.HIVE_SERVER2_ENABLE_DOAS)) {
+            List<String> kinitArgv = Lists.newLinkedList();
+            kinitArgv.add("kinit");
+            kinitArgv.add(principal);
+            kinitArgv.add("-k");
+            kinitArgv.add("-t");
+            kinitArgv.add(keyTabFile + ";");
+            kinitArgv.addAll(argv);
+            argv = kinitArgv;
+          } else {
+            // if doAs is not enabled, we pass the principal/keypad to spark-submit in order to
+            // support the possible delegation token renewal in Spark
+            argv.add("--principal");
+            argv.add(principal);
+            argv.add("--keytab");
+            argv.add(keyTabFile);
+          }
         }
       }
       if (hiveConf.getBoolVar(HiveConf.ConfVars.HIVE_SERVER2_ENABLE_DOAS)) {