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;