diff --git kudu-handler/pom.xml kudu-handler/pom.xml index 4082840592..6f02bd0ab8 100644 --- kudu-handler/pom.xml +++ kudu-handler/pom.xml @@ -39,20 +39,21 @@ org.apache.hive hive-exec ${project.version} + provided org.apache.hadoop hadoop-common - provided ${hadoop.version} + provided true org.apache.hadoop - provided hadoop-mapreduce-client-core ${hadoop.version} + provided true @@ -151,5 +152,61 @@ **/*.java + + dev-fast-build + + + skipShade + !true + + + + + + org.apache.maven.plugins + maven-shade-plugin + ${maven.shade.plugin.version} + + + package + + shade + + + false + + + org.apache.kudu:kudu-client + com.stumbleupon:async + + + + + org.apache.kudu + org.apache.hive.kudu.org.apache.kudu + + + com.stumbleupon.async + org.apache.hive.kudu.com.stumbleupon.async + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + static/ + + + + + + + + + + diff --git kudu-handler/src/java/org/apache/hadoop/hive/kudu/KuduHiveUtils.java kudu-handler/src/java/org/apache/hadoop/hive/kudu/KuduHiveUtils.java index 3b89e5dcd0..f1163fabcf 100644 --- kudu-handler/src/java/org/apache/hadoop/hive/kudu/KuduHiveUtils.java +++ kudu-handler/src/java/org/apache/hadoop/hive/kudu/KuduHiveUtils.java @@ -66,15 +66,16 @@ public static Configuration createOverlayedConf(Configuration conf, Properties t } public static String getMasterAddresses(Configuration conf) throws IOException { - // Load the default configuration. - String masterAddresses = HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_KUDU_MASTER_ADDRESSES_DEFAULT); + // Use the table property if it exists. + String masterAddresses = conf.get(KUDU_MASTER_ADDRS_KEY); if (StringUtils.isEmpty(masterAddresses)) { - throw new IOException("Kudu master addresses are not specified with " + - HiveConf.ConfVars.HIVE_KUDU_MASTER_ADDRESSES_DEFAULT.varname); + // Fall back to the default configuration. + masterAddresses = HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_KUDU_MASTER_ADDRESSES_DEFAULT); } - // Override with the table configuration if it exists. - if (!StringUtils.isEmpty(conf.get(KUDU_MASTER_ADDRS_KEY))) { - masterAddresses = conf.get(KUDU_MASTER_ADDRS_KEY); + if (StringUtils.isEmpty(masterAddresses)) { + throw new IOException("Kudu master addresses are not specified in the table property (" + + KUDU_MASTER_ADDRS_KEY + "), or default configuration (" + + HiveConf.ConfVars.HIVE_KUDU_MASTER_ADDRESSES_DEFAULT.varname + ")."); } return masterAddresses; } diff --git kudu-handler/src/java/org/apache/hadoop/hive/kudu/KuduStorageHandler.java kudu-handler/src/java/org/apache/hadoop/hive/kudu/KuduStorageHandler.java index a9c6968f16..8252fe9081 100644 --- kudu-handler/src/java/org/apache/hadoop/hive/kudu/KuduStorageHandler.java +++ kudu-handler/src/java/org/apache/hadoop/hive/kudu/KuduStorageHandler.java @@ -137,7 +137,7 @@ public void configureJobConf(TableDesc tableDesc, JobConf jobConf) { jobConf.set(HiveConf.ConfVars.HIVE_AM_SPLIT_GENERATION.toString(), Boolean.FALSE.toString()); } try { - addDependencyJars(jobConf, KuduRecordWriter.class); + addDependencyJars(jobConf, KuduStorageHandler.class); } catch (IOException e) { Throwables.propagate(e); } diff --git kudu-handler/src/test/org/apache/hadoop/hive/kudu/TestKuduSerDe.java kudu-handler/src/test/org/apache/hadoop/hive/kudu/TestKuduSerDe.java index 1713a50110..da2a9899ea 100644 --- kudu-handler/src/test/org/apache/hadoop/hive/kudu/TestKuduSerDe.java +++ kudu-handler/src/test/org/apache/hadoop/hive/kudu/TestKuduSerDe.java @@ -152,7 +152,7 @@ public void testMissingMasters() throws Exception { fail("Should fail on missing table"); } catch (SerDeException ex) { assertThat(ex.getMessage(), - containsString("Kudu master addresses are not specified with hive.kudu.master.addresses.default")); + containsString("Kudu master addresses are not specified in the table property")); } } diff --git kudu-handler/src/test/results/negative/kudu_config.q.out kudu-handler/src/test/results/negative/kudu_config.q.out index 066aad4f9b..b0071e7cd6 100644 --- kudu-handler/src/test/results/negative/kudu_config.q.out +++ kudu-handler/src/test/results/negative/kudu_config.q.out @@ -4,4 +4,4 @@ TBLPROPERTIES ("kudu.table_name" = "default.kudu_kv") PREHOOK: type: CREATETABLE PREHOOK: Output: database:default PREHOOK: Output: default@kv_table -FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.ddl.DDLTask. java.lang.RuntimeException: MetaException(message:org.apache.hadoop.hive.serde2.SerDeException java.io.IOException: Kudu master addresses are not specified with hive.kudu.master.addresses.default) +FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.ddl.DDLTask. java.lang.RuntimeException: MetaException(message:org.apache.hadoop.hive.serde2.SerDeException java.io.IOException: Kudu master addresses are not specified in the table property (kudu.master_addresses), or default configuration (hive.kudu.master.addresses.default).)