diff --git hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java index 8cd594b..4a76441 100644 --- hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java +++ hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -35,7 +36,8 @@ import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.mapred.TableOutputFormat; -import org.apache.hadoop.hbase.mapred.TableMapReduceUtil; +import org.apache.hadoop.hbase.mapreduce.TableInputFormatBase; +import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil; import org.apache.hadoop.hbase.security.User; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hive.hbase.HBaseSerDe.ColumnMapping; @@ -376,9 +378,14 @@ private void addHBaseDelegationToken(Configuration conf) throws IOException { @Override public void configureJobConf(TableDesc tableDesc, JobConf jobConf) { try { - TableMapReduceUtil.addDependencyJars(jobConf); - org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addDependencyJars(jobConf, - HBaseStorageHandler.class, org.apache.hadoop.hbase.HBaseConfiguration.class); + TableMapReduceUtil.addDependencyJars( + jobConf, HBaseStorageHandler.class, TableInputFormatBase.class); + Set merged = new LinkedHashSet(jobConf.getStringCollection("tmpjars")); + + Job copy = new Job(jobConf); + TableMapReduceUtil.addDependencyJars(copy); + merged.addAll(copy.getConfiguration().getStringCollection("tmpjars")); + jobConf.set("tmpjars", StringUtils.arrayToString(merged.toArray(new String[0]))); } catch (IOException e) { throw new RuntimeException(e); }