You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by sz...@apache.org on 2018/08/17 09:33:52 UTC

hive git commit: HIVE-19767: HiveServer2 should take hiveconf for non Hive properties (Szehon Ho, reviewed by Aihua Xu)

Repository: hive
Updated Branches:
  refs/heads/master aa3a56193 -> 59cf159a7


HIVE-19767: HiveServer2 should take hiveconf for non Hive properties (Szehon Ho, reviewed by Aihua Xu)


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

Branch: refs/heads/master
Commit: 59cf159a795435b2e72bc0167c7fe85b762a8305
Parents: aa3a561
Author: Szehon Ho <sz...@gmail.com>
Authored: Fri Aug 17 11:32:50 2018 +0200
Committer: Szehon Ho <sz...@gmail.com>
Committed: Fri Aug 17 11:32:50 2018 +0200

----------------------------------------------------------------------
 .../java/org/apache/hadoop/hive/conf/HiveConf.java    | 14 ++++++++++++--
 .../org/apache/hive/service/server/HiveServer2.java   |  2 +-
 .../service/server/TestServerOptionsProcessor.java    |  5 +++--
 3 files changed, 16 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/59cf159a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index d406f51..402d66d 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -421,6 +421,7 @@ public class HiveConf extends Configuration {
    * 1) Hadoop configuration properties are applied.
    * 2) ConfVar properties with non-null values are overlayed.
    * 3) hive-site.xml properties are overlayed.
+   * 4) System Properties and Manual Overrides are overlayed.
    *
    * WARNING: think twice before adding any Hadoop configuration properties
    * with non-null values to this list as they will override any values defined
@@ -5242,7 +5243,7 @@ public class HiveConf extends Configuration {
       addResource(hiveServer2SiteUrl);
     }
 
-    // Overlay the values of any system properties whose names appear in the list of ConfVars
+    // Overlay the values of any system properties and manual overrides
     applySystemProperties();
 
     if ((this.get("hive.metastore.ds.retry.attempts") != null) ||
@@ -5509,7 +5510,9 @@ public class HiveConf extends Configuration {
 
   };
 
-
+  //Take care of conf overrides.
+  //Includes values in ConfVars as well as underlying configuration properties (ie, hadoop)
+  public static final Map<String, String> overrides = new HashMap<String, String>();
 
   /**
    * Apply system properties to this object if the property name is defined in ConfVars
@@ -5537,6 +5540,13 @@ public class HiveConf extends Configuration {
       }
     }
 
+    for (Map.Entry<String, String> oneVar : overrides.entrySet()) {
+      if (overrides.get(oneVar.getKey()) != null) {
+        if (overrides.get(oneVar.getKey()).length() > 0) {
+          systemProperties.put(oneVar.getKey(), oneVar.getValue());
+        }
+      }
+    }
     return systemProperties;
   }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/59cf159a/service/src/java/org/apache/hive/service/server/HiveServer2.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/server/HiveServer2.java b/service/src/java/org/apache/hive/service/server/HiveServer2.java
index c4d110e..1f8dc6d 100644
--- a/service/src/java/org/apache/hive/service/server/HiveServer2.java
+++ b/service/src/java/org/apache/hive/service/server/HiveServer2.java
@@ -1229,7 +1229,7 @@ public class HiveServer2 extends CompositeService {
                 + " or use the set the value in the configuration file"
                 + " (see HIVE-19886)");
           }
-          System.setProperty(propKey, confProps.getProperty(propKey));
+          HiveConf.overrides.put(propKey, confProps.getProperty(propKey));
         }
 
         // Process --help

http://git-wip-us.apache.org/repos/asf/hive/blob/59cf159a/service/src/test/org/apache/hive/service/server/TestServerOptionsProcessor.java
----------------------------------------------------------------------
diff --git a/service/src/test/org/apache/hive/service/server/TestServerOptionsProcessor.java b/service/src/test/org/apache/hive/service/server/TestServerOptionsProcessor.java
index d5e4ed6..652483a 100644
--- a/service/src/test/org/apache/hive/service/server/TestServerOptionsProcessor.java
+++ b/service/src/test/org/apache/hive/service/server/TestServerOptionsProcessor.java
@@ -18,6 +18,7 @@
 
 package org.apache.hive.service.server;
 
+import org.apache.hadoop.hive.conf.HiveConf;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -39,14 +40,14 @@ public class TestServerOptionsProcessor {
     Assert.assertEquals(
         "checking system property before processing options",
         null,
-        System.getProperty(key));
+        HiveConf.overrides.get(key));
 
     optProcessor.parse(args);
 
     Assert.assertEquals(
         "checking system property after processing options",
         value,
-        System.getProperty(key));
+        HiveConf.overrides.get(key));
   }
 
 }