Repository: sqoop
Updated Branches:
  refs/heads/trunk 03ed21b4f -> fee80ac01


SQOOP-2535: Add error handling to HiveConf

(Dian Fu via Jarek Jarcec Cecho)


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

Branch: refs/heads/trunk
Commit: fee80ac017b0bbe4120bbdfa75423c370dca342c
Parents: 03ed21b
Author: Jarek Jarcec Cecho <[email protected]>
Authored: Tue Sep 1 13:42:28 2015 +0200
Committer: Jarek Jarcec Cecho <[email protected]>
Committed: Tue Sep 1 13:42:28 2015 +0200

----------------------------------------------------------------------
 src/java/org/apache/sqoop/hive/HiveConfig.java      |  8 +++++---
 src/java/org/apache/sqoop/hive/HiveImport.java      |  2 +-
 src/java/org/apache/sqoop/mapreduce/ParquetJob.java | 16 +++++++++-------
 3 files changed, 15 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/fee80ac0/src/java/org/apache/sqoop/hive/HiveConfig.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/sqoop/hive/HiveConfig.java 
b/src/java/org/apache/sqoop/hive/HiveConfig.java
index 18a722b..43ac295 100644
--- a/src/java/org/apache/sqoop/hive/HiveConfig.java
+++ b/src/java/org/apache/sqoop/hive/HiveConfig.java
@@ -22,6 +22,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
 
+import java.io.IOException;
 import java.util.Map;
 
 public class HiveConfig {
@@ -36,8 +37,9 @@ public class HiveConfig {
    * Dynamically create hive configuration object.
    * @param conf
    * @return
+   * @throws IOException if instantiate HiveConf failed.
    */
-  public static Configuration getHiveConf(Configuration conf) {
+  public static Configuration getHiveConf(Configuration conf) throws 
IOException {
     try {
       Class HiveConfClass = Class.forName(HIVE_CONF_CLASS);
       return 
((Configuration)(HiveConfClass.getConstructor(Configuration.class, Class.class)
@@ -45,11 +47,11 @@ public class HiveConfig {
     } catch (ClassNotFoundException ex) {
       LOG.error("Could not load " + HIVE_CONF_CLASS
           + ". Make sure HIVE_CONF_DIR is set correctly.");
+      throw new IOException(ex);
     } catch (Exception ex) {
       LOG.error("Could not instantiate HiveConf instance.", ex);
+      throw new IOException(ex);
     }
-
-    return null;
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/sqoop/blob/fee80ac0/src/java/org/apache/sqoop/hive/HiveImport.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/sqoop/hive/HiveImport.java 
b/src/java/org/apache/sqoop/hive/HiveImport.java
index e03d33c..4828375 100644
--- a/src/java/org/apache/sqoop/hive/HiveImport.java
+++ b/src/java/org/apache/sqoop/hive/HiveImport.java
@@ -385,7 +385,7 @@ public class HiveImport {
     }
   }
 
-  private String[] getHiveArgs(String... args) {
+  private String[] getHiveArgs(String... args) throws IOException {
     List<String> newArgs = new LinkedList<String>();
     newArgs.addAll(Arrays.asList(args));
 

http://git-wip-us.apache.org/repos/asf/sqoop/blob/fee80ac0/src/java/org/apache/sqoop/mapreduce/ParquetJob.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/sqoop/mapreduce/ParquetJob.java 
b/src/java/org/apache/sqoop/mapreduce/ParquetJob.java
index 2ebdea1..b077d9b 100644
--- a/src/java/org/apache/sqoop/mapreduce/ParquetJob.java
+++ b/src/java/org/apache/sqoop/mapreduce/ParquetJob.java
@@ -89,15 +89,17 @@ public final class ParquetJob {
   public static void configureImportJob(JobConf conf, Schema schema,
       String uri, WriteMode writeMode) throws IOException {
     Dataset dataset;
-    Configuration hiveConf = HiveConfig.getHiveConf(conf);
 
     // Add hive delegation token only if we don't already have one.
-    if (uri.startsWith("dataset:hive") && isSecureMetastore(hiveConf)) {
-      // Copy hive configs to job config
-      HiveConfig.addHiveConfigs(hiveConf, conf);
-
-      if (conf.getCredentials().getToken(new Text(HIVE_METASTORE_TOKEN_ALIAS)) 
== null) {
-        addHiveDelegationToken(conf);
+    if (uri.startsWith("dataset:hive")) {
+      Configuration hiveConf = HiveConfig.getHiveConf(conf);
+      if (isSecureMetastore(hiveConf)) {
+        // Copy hive configs to job config
+        HiveConfig.addHiveConfigs(hiveConf, conf);
+
+        if (conf.getCredentials().getToken(new 
Text(HIVE_METASTORE_TOKEN_ALIAS)) == null) {
+          addHiveDelegationToken(conf);
+        }
       }
     }
 

Reply via email to