You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2018/07/02 02:07:55 UTC

[07/20] hive git commit: HIVE-20002: Shipping jdbd-storage-handler dependency jars in LLAP (Daniel Dai, reviewed by Sergey Shelukhin)

HIVE-20002: Shipping jdbd-storage-handler dependency jars in LLAP (Daniel Dai, reviewed by Sergey Shelukhin)


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

Branch: refs/heads/master-txnstats
Commit: 8f57e25bb205d60d9022bbc185ffd8af5aae0fab
Parents: 761597f
Author: Daniel Dai <da...@gmail.com>
Authored: Fri Jun 29 22:05:06 2018 -0700
Committer: Daniel Dai <da...@gmail.com>
Committed: Fri Jun 29 22:05:06 2018 -0700

----------------------------------------------------------------------
 .../hadoop/hive/llap/cli/LlapServiceDriver.java | 23 ++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/8f57e25b/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapServiceDriver.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapServiceDriver.java b/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapServiceDriver.java
index 20fec7e..0f1d5ee 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapServiceDriver.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapServiceDriver.java
@@ -90,7 +90,8 @@ public class LlapServiceDriver {
 
   private static final String[] DEFAULT_AUX_CLASSES = new String[] {
     "org.apache.hive.hcatalog.data.JsonSerDe","org.apache.hadoop.hive.druid.DruidStorageHandler",
-    "org.apache.hive.storage.jdbc.JdbcStorageHandler"
+    "org.apache.hive.storage.jdbc.JdbcStorageHandler", "org.apache.commons.dbcp.BasicDataSourceFactory",
+    "org.apache.commons.pool.impl.GenericObjectPool"
   };
   private static final String HBASE_SERDE_CLASS = "org.apache.hadoop.hive.hbase.HBaseSerDe";
   private static final String[] NEEDED_CONFIGS = LlapDaemonConfiguration.DAEMON_CONFIGS;
@@ -433,7 +434,9 @@ public class LlapServiceDriver {
               localizeJarForClass(lfs, libDir, codecClassName, false);
             }
           }
-
+          for (String className : getDbSpecificJdbcJars()) {
+            localizeJarForClass(lfs, libDir, className, false);
+          }
           if (options.getIsHBase()) {
             try {
               localizeJarForClass(lfs, libDir, HBASE_SERDE_CLASS, true);
@@ -738,6 +741,22 @@ public class LlapServiceDriver {
     return udfs.keySet();
   }
 
+  private void addJarForClassToListIfExists(String cls, List<String> jarList) {
+    try {
+      Class.forName(cls);
+      jarList.add(cls);
+    } catch (Exception e) {
+    }
+  }
+  private List<String> getDbSpecificJdbcJars() {
+    List<String> jdbcJars = new ArrayList<String>();
+    addJarForClassToListIfExists("com.mysql.jdbc.Driver", jdbcJars); // add mysql jdbc driver
+    addJarForClassToListIfExists("org.postgresql.Driver", jdbcJars); // add postgresql jdbc driver
+    addJarForClassToListIfExists("oracle.jdbc.OracleDriver", jdbcJars); // add oracle jdbc driver
+    addJarForClassToListIfExists("com.microsoft.sqlserver.jdbc.SQLServerDriver", jdbcJars); // add mssql jdbc driver
+    return jdbcJars;
+  }
+
   private void localizeJarForClass(FileSystem lfs, Path libDir, String className, boolean doThrow)
       throws IOException {
     String jarPath = null;