You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by xu...@apache.org on 2014/03/01 17:27:47 UTC
svn commit: r1573191 -
/hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java
Author: xuefu
Date: Sat Mar 1 16:27:46 2014
New Revision: 1573191
URL: http://svn.apache.org/r1573191
Log:
HIVE-6356: Dependency injection in hbase storage handler is broken (reviewed by Navis)
Modified:
hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java
Modified: hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java
URL: http://svn.apache.org/viewvc/hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java?rev=1573191&r1=1573190&r2=1573191&view=diff
==============================================================================
--- hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java (original)
+++ hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java Sat Mar 1 16:27:46 2014
@@ -22,6 +22,7 @@ import java.io.IOException;
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.HTableDes
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,20 @@ public class HBaseStorageHandler extends
@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);
+ /*
+ * HIVE-6356
+ * The following code change is only needed for hbase-0.96.0 due to HBASE-9165, and
+ * will not be required once Hive bumps up its hbase version). At that time , we will
+ * only need TableMapReduceUtil.addDependencyJars(jobConf) here.
+ */
+ TableMapReduceUtil.addDependencyJars(
+ jobConf, HBaseStorageHandler.class, TableInputFormatBase.class);
+ Set<String> merged = new LinkedHashSet<String>(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);
}