diff --git hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/JobSubmissionConstants.java hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/JobSubmissionConstants.java index 1d560b6..d3dc3f7 100644 --- hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/JobSubmissionConstants.java +++ hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/JobSubmissionConstants.java @@ -55,6 +55,7 @@ public static final String MAPREDUCE_JOB_TAGS_ARG_PLACEHOLDER = "__MR_JOB_TAGS_OPTION=MR_JOB_TAGS_JOBID__"; + public static final String HADOOP_CLASSPATH = "HADOOP_CLASSPATH"; /** * constants needed for Pig job submission * The string values here are what Pig expects to see in it's environment diff --git hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/LaunchMapper.java hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/LaunchMapper.java index 3edd449..91fe247 100644 --- hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/LaunchMapper.java +++ hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/LaunchMapper.java @@ -107,12 +107,7 @@ private static void handleSqoop(Configuration conf, Map env) thr } jdbcJars.setLength(jdbcJars.length() - 1); //this makes the jars available to Sqoop client - if(TempletonUtils.isset(System.getenv("HADOOP_CLASSPATH"))) { - env.put("HADOOP_CLASSPATH", System.getenv("HADOOP_CLASSPATH") + File.pathSeparator + jdbcJars.toString()); - } - else { - env.put("HADOOP_CLASSPATH", jdbcJars.toString()); - } + prependPathToVariable(HADOOP_CLASSPATH, env, jdbcJars.toString()); } } private static void handleHadoopClasspathExtras(Configuration conf, Map env) @@ -134,11 +129,25 @@ private static void handleHadoopClasspathExtras(Configuration conf, Map env, String paths) { + if(!TempletonUtils.isset(pathVarName) || !TempletonUtils.isset(paths) || env == null) { + return; + } + if(TempletonUtils.isset(env.get(pathVarName))) { + env.put(pathVarName, paths + File.pathSeparator + env.get(pathVarName)); + } + else if(TempletonUtils.isset(System.getenv(pathVarName))) { + env.put(pathVarName, paths + File.pathSeparator + System.getenv(pathVarName)); } else { - env.put("HADOOP_CLASSPATH", paths.toString()); + env.put(pathVarName, paths); } } protected Process startJob(Context context, String user, String overrideClasspath)