You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by nz...@apache.org on 2010/06/18 04:42:43 UTC

svn commit: r955818 - in /hadoop/hive/trunk: ./ common/src/java/org/apache/hadoop/hive/conf/ conf/ hbase-handler/src/java/org/apache/hadoop/hive/hbase/ hbase-handler/src/test/queries/ hbase-handler/src/test/results/

Author: nzhang
Date: Fri Jun 18 02:42:43 2010
New Revision: 955818

URL: http://svn.apache.org/viewvc?rev=955818&view=rev
Log:
HIVE-1383. Allow HBase WAL to be disabled (John Sichi via Ning Zhang)

Modified:
    hadoop/hive/trunk/CHANGES.txt
    hadoop/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
    hadoop/hive/trunk/conf/hive-default.xml
    hadoop/hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableOutputFormat.java
    hadoop/hive/trunk/hbase-handler/src/test/queries/hbase_queries.q
    hadoop/hive/trunk/hbase-handler/src/test/results/hbase_queries.q.out

Modified: hadoop/hive/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/CHANGES.txt?rev=955818&r1=955817&r2=955818&view=diff
==============================================================================
--- hadoop/hive/trunk/CHANGES.txt (original)
+++ hadoop/hive/trunk/CHANGES.txt Fri Jun 18 02:42:43 2010
@@ -223,6 +223,9 @@ Trunk -  Unreleased
 
     HIVE-1410. Add TCP keepalive option for metastore server
     (Paul Yang via Ning Zhang)
+ 
+    HIVE-1383. Allow HBase WAL to be disabled.
+    (John Sichi via Ning Zhang)
 
   OPTIMIZATIONS
 

Modified: hadoop/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java?rev=955818&r1=955817&r2=955818&view=diff
==============================================================================
--- hadoop/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java (original)
+++ hadoop/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java Fri Jun 18 02:42:43 2010
@@ -252,6 +252,9 @@ public class HiveConf extends Configurat
     HIVEOPTSORTMERGEBUCKETMAPJOIN("hive.optimize.bucketmapjoin.sortedmerge", false), // try to use sorted merge bucket map join
     HIVEOPTREDUCEDEDUPLICATION("hive.optimize.reducededuplication", true),
 
+    // For HBase storage handler
+    HIVE_HBASE_WAL_ENABLED("hive.hbase.wal.enabled", true),
+
     // For har files
     HIVEARCHIVEENABLED("hive.archive.enabled", false),
     HIVEHARPARENTDIRSETTABLE("hive.archive.har.parentdir.settable", false),

Modified: hadoop/hive/trunk/conf/hive-default.xml
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/conf/hive-default.xml?rev=955818&r1=955817&r2=955818&view=diff
==============================================================================
--- hadoop/hive/trunk/conf/hive-default.xml (original)
+++ hadoop/hive/trunk/conf/hive-default.xml Fri Jun 18 02:42:43 2010
@@ -589,4 +589,12 @@
   numbers, this conf var needs to be set manually.</description>
 </property>
 
+<!-- HBase Storage Handler Parameters -->
+
+<property>
+  <name>hive.hbase.wal.enabled</name>
+  <value>true</value>
+  <description>Whether writes to HBase should be forced to the write-ahead log.  Disabling this improves HBase write performance at the risk of lost writes in case of a crash.</description>
+</property>
+
 </configuration>

Modified: hadoop/hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableOutputFormat.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableOutputFormat.java?rev=955818&r1=955817&r2=955818&view=diff
==============================================================================
--- hadoop/hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableOutputFormat.java (original)
+++ hadoop/hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableOutputFormat.java Fri Jun 18 02:42:43 2010
@@ -22,9 +22,14 @@ import java.io.IOException;
 import java.util.Properties;
 
 import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.client.Put;
+import org.apache.hadoop.hbase.io.BatchOperation;
 import org.apache.hadoop.hbase.io.BatchUpdate;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 import org.apache.hadoop.hbase.mapred.TableOutputFormat;
+import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.ql.exec.FileSinkOperator.RecordWriter;
 import org.apache.hadoop.hive.ql.io.HiveOutputFormat;
 import org.apache.hadoop.io.Writable;
@@ -64,24 +69,44 @@ public class HiveHBaseTableOutputFormat 
     String hbaseTableName = jc.get(HBaseSerDe.HBASE_TABLE_NAME);
     jc.set(TableOutputFormat.OUTPUT_TABLE, hbaseTableName);
 
-    final org.apache.hadoop.mapred.RecordWriter<
-      ImmutableBytesWritable, BatchUpdate> tblWriter =
-      this.getRecordWriter(null, jc, null, progress);
-
-    return new RecordWriter() {
-      
-      @Override
-      public void close(boolean abort) throws IOException {
-        tblWriter.close(null);
+    boolean walEnabled = HiveConf.getBoolVar(
+      jc, HiveConf.ConfVars.HIVE_HBASE_WAL_ENABLED);
+    
+    HTable table = new HTable(new HBaseConfiguration(jc), hbaseTableName);
+    table.setAutoFlush(false);
+    return new HiveHBaseRecordWriter(table, walEnabled);
+  }
+
+  // This class was cloned from the HBase RecordWriter so that we
+  // can control the WAL setting.
+  private static class HiveHBaseRecordWriter implements RecordWriter {
+    private HTable table;
+    private boolean walEnabled;
+
+    HiveHBaseRecordWriter(HTable table, boolean walEnabled) {
+      this.table = table;
+      this.walEnabled = walEnabled;
+    }
+
+    @Override
+    public void close(boolean abort) throws IOException {
+      if (!abort) {
+        table.flushCommits();
       }
+    }
 
-      @Override
-      public void write(Writable w) throws IOException {
-        BatchUpdate bu = (BatchUpdate) w;
-        key.set(bu.getRow());
-        tblWriter.write(key, bu);
+    @Override
+    public void write(Writable w) throws IOException {
+      BatchUpdate batchUpdate = (BatchUpdate) w;
+      for (BatchOperation bo : batchUpdate) {
+        assert(bo.isPut());
+        Put p = new Put(batchUpdate.getRow(), null);
+        if (!walEnabled) {
+          p.setWriteToWAL(false);
+        }
+        p.add(bo.getColumn(), batchUpdate.getTimestamp(), bo.getValue());
+        table.put(p);
       }
-    };
+    }
   }
-
 }

Modified: hadoop/hive/trunk/hbase-handler/src/test/queries/hbase_queries.q
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/hbase-handler/src/test/queries/hbase_queries.q?rev=955818&r1=955817&r2=955818&view=diff
==============================================================================
--- hadoop/hive/trunk/hbase-handler/src/test/queries/hbase_queries.q (original)
+++ hadoop/hive/trunk/hbase-handler/src/test/queries/hbase_queries.q Fri Jun 18 02:42:43 2010
@@ -134,6 +134,20 @@ WHERE key=98 OR key=100;
 
 SELECT * FROM hbase_table_7 ORDER BY key;
 
+set hive.hbase.wal.enabled=false;
+
+DROP TABLE hbase_table_8;
+CREATE TABLE hbase_table_8(key int, value1 string, value2 int, value3 int) 
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES (
+"hbase.columns.mapping" = "a:b,a:c,d:e"
+);
+
+INSERT OVERWRITE TABLE hbase_table_8 SELECT key, value, key+1, key+2 
+FROM src WHERE key=98 OR key=100;
+
+SELECT * FROM hbase_table_8 ORDER BY key;
+
 DROP TABLE hbase_table_1;
 DROP TABLE hbase_table_2;
 DROP TABLE hbase_table_3;
@@ -141,5 +155,6 @@ DROP TABLE hbase_table_4;
 DROP TABLE hbase_table_5;
 DROP TABLE hbase_table_6;
 DROP TABLE hbase_table_7;
+DROP TABLE hbase_table_8;
 DROP TABLE empty_hbase_table;
 DROP TABLE empty_normal_table;

Modified: hadoop/hive/trunk/hbase-handler/src/test/results/hbase_queries.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/hbase-handler/src/test/results/hbase_queries.q.out?rev=955818&r1=955817&r2=955818&view=diff
==============================================================================
--- hadoop/hive/trunk/hbase-handler/src/test/results/hbase_queries.q.out (original)
+++ hadoop/hive/trunk/hbase-handler/src/test/results/hbase_queries.q.out Fri Jun 18 02:42:43 2010
@@ -20,15 +20,15 @@ POSTHOOK: type: DESCTABLE
 key	int	from deserializer
 value	string	from deserializer
 	 	 
-Detailed Table Information	Table(tableName:hbase_table_1, dbName:default, owner:jsichi, createTime:1273696968, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:key, type:int, comment:null), FieldSchema(name:value, type:string, comment:null)], location:file:/Users/jsichi/open/hive-trunk/build/hbase-handler/test/data/warehouse/hbase_table_1, inputFormat:org.apache.hadoop.hive.hbase.HiveHBaseTableInputFormat, outputFormat:org.apache.hadoop.hive.hbase.HiveHBaseTableOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.hbase.HBaseSerDe, parameters:{serialization.format=1,hbase.columns.mapping=cf:string}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[], parameters:{hbase.table.name=hbase_table_0,transient_lastDdlTime=1273696968,storage_handler=org.apache.hadoop.hive.hbase.HBaseStorageHandler}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE)	
+Detailed Table Information	Table(tableName:hbase_table_1, dbName:default, owner:jsichi, createTime:1275701453, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:key, type:int, comment:null), FieldSchema(name:value, type:string, comment:null)], location:file:/Users/jsichi/open/hive-trunk/build/hbase-handler/test/data/warehouse/hbase_table_1, inputFormat:org.apache.hadoop.hive.hbase.HiveHBaseTableInputFormat, outputFormat:org.apache.hadoop.hive.hbase.HiveHBaseTableOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.hbase.HBaseSerDe, parameters:{serialization.format=1,hbase.columns.mapping=cf:string}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[], parameters:{hbase.table.name=hbase_table_0,transient_lastDdlTime=1275701453,storage_handler=org.apache.hadoop.hive.hbase.HBaseStorageHandler}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE)	
 PREHOOK: query: select * from hbase_table_1
 PREHOOK: type: QUERY
 PREHOOK: Input: default@hbase_table_1
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-42-48_571_1567002521290917375/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-30-53_641_2055476877709930223/10000
 POSTHOOK: query: select * from hbase_table_1
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@hbase_table_1
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-42-48_571_1567002521290917375/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-30-53_641_2055476877709930223/10000
 PREHOOK: query: EXPLAIN FROM src INSERT OVERWRITE TABLE hbase_table_1 SELECT * WHERE (key%2)=0
 PREHOOK: type: QUERY
 POSTHOOK: query: EXPLAIN FROM src INSERT OVERWRITE TABLE hbase_table_1 SELECT * WHERE (key%2)=0
@@ -198,7 +198,7 @@ STAGE PLANS:
   Stage: Stage-2
     Map Reduce
       Alias -> Map Operator Tree:
-        file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-42-53_771_3408249171250779075/10002 
+        file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-30-58_979_3715749119451606580/10002 
             Reduce Output Operator
               key expressions:
                     expr: _col0
@@ -237,7 +237,7 @@ ORDER BY key, value LIMIT 20
 PREHOOK: type: QUERY
 PREHOOK: Input: default@hbase_table_1
 PREHOOK: Input: default@src
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-42-54_376_2770959312857635153/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-30-59_568_2312221566109156178/10000
 POSTHOOK: query: SELECT Y.* 
 FROM 
 (SELECT hbase_table_1.* FROM hbase_table_1) x
@@ -248,7 +248,7 @@ ORDER BY key, value LIMIT 20
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@hbase_table_1
 POSTHOOK: Input: default@src
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-42-54_376_2770959312857635153/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-30-59_568_2312221566109156178/10000
 0	val_0
 0	val_0
 0	val_0
@@ -382,7 +382,7 @@ STAGE PLANS:
   Stage: Stage-2
     Map Reduce
       Alias -> Map Operator Tree:
-        file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-43-03_629_6066743056712305489/10002 
+        file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-31-09_126_1520524795989354098/10002 
             Reduce Output Operator
               key expressions:
                     expr: _col0
@@ -420,7 +420,7 @@ ORDER BY key,value
 PREHOOK: type: QUERY
 PREHOOK: Input: default@hbase_table_2
 PREHOOK: Input: default@hbase_table_1
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-43-04_169_137119299474143401/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-31-09_724_1064526582883750401/10000
 POSTHOOK: query: SELECT Y.*
 FROM 
 (SELECT hbase_table_1.* FROM hbase_table_1 WHERE hbase_table_1.key > 100) x
@@ -431,7 +431,7 @@ ORDER BY key,value
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@hbase_table_2
 POSTHOOK: Input: default@hbase_table_1
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-43-04_169_137119299474143401/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-31-09_724_1064526582883750401/10000
 104	val_104
 114	val_114
 116	val_116
@@ -462,48 +462,48 @@ PREHOOK: query: select * from (select co
 PREHOOK: type: QUERY
 PREHOOK: Input: default@empty_hbase_table
 PREHOOK: Input: default@empty_normal_table
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-43-16_942_5359613916717018216/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-31-22_759_8050475277590845570/10000
 POSTHOOK: query: select * from (select count(1) as c from empty_normal_table union all select count(1) as c from empty_hbase_table) x order by c
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@empty_hbase_table
 POSTHOOK: Input: default@empty_normal_table
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-43-16_942_5359613916717018216/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-31-22_759_8050475277590845570/10000
 0
 0
 PREHOOK: query: select * from (select count(1) c from empty_normal_table union all select count(1) as c from hbase_table_1) x order by c
 PREHOOK: type: QUERY
 PREHOOK: Input: default@empty_normal_table
 PREHOOK: Input: default@hbase_table_1
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-43-30_013_1128777795950375727/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-31-35_831_2260230480112269198/10000
 POSTHOOK: query: select * from (select count(1) c from empty_normal_table union all select count(1) as c from hbase_table_1) x order by c
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@empty_normal_table
 POSTHOOK: Input: default@hbase_table_1
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-43-30_013_1128777795950375727/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-31-35_831_2260230480112269198/10000
 0
 155
 PREHOOK: query: select * from (select count(1) c from src union all select count(1) as c from empty_hbase_table) x order by c
 PREHOOK: type: QUERY
 PREHOOK: Input: default@empty_hbase_table
 PREHOOK: Input: default@src
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-43-42_378_1951769354517025095/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-31-49_528_2637853571948769392/10000
 POSTHOOK: query: select * from (select count(1) c from src union all select count(1) as c from empty_hbase_table) x order by c
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@empty_hbase_table
 POSTHOOK: Input: default@src
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-43-42_378_1951769354517025095/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-31-49_528_2637853571948769392/10000
 0
 500
 PREHOOK: query: select * from (select count(1) c from src union all select count(1) as c from hbase_table_1) x order by c
 PREHOOK: type: QUERY
 PREHOOK: Input: default@src
 PREHOOK: Input: default@hbase_table_1
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-43-55_822_8910566457500025591/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-32-04_353_4852346326893233759/10000
 POSTHOOK: query: select * from (select count(1) c from src union all select count(1) as c from hbase_table_1) x order by c
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@src
 POSTHOOK: Input: default@hbase_table_1
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-43-55_822_8910566457500025591/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-32-04_353_4852346326893233759/10000
 155
 500
 PREHOOK: query: CREATE TABLE hbase_table_3(key int, value string, count int) 
@@ -703,20 +703,20 @@ POSTHOOK: Output: default@hbase_table_3
 PREHOOK: query: select count(1) from hbase_table_3
 PREHOOK: type: QUERY
 PREHOOK: Input: default@hbase_table_3
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-44-21_943_5380732604060686051/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-32-31_358_2608877383903639679/10000
 POSTHOOK: query: select count(1) from hbase_table_3
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@hbase_table_3
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-44-21_943_5380732604060686051/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-32-31_358_2608877383903639679/10000
 155
 PREHOOK: query: select * from hbase_table_3 order by key, value limit 5
 PREHOOK: type: QUERY
 PREHOOK: Input: default@hbase_table_3
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-44-27_368_350478834712988449/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-32-37_318_9069569910503378173/10000
 POSTHOOK: query: select * from hbase_table_3 order by key, value limit 5
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@hbase_table_3
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-44-27_368_350478834712988449/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-32-37_318_9069569910503378173/10000
 0	val_0	3
 2	val_2	1
 4	val_4	1
@@ -725,11 +725,11 @@ POSTHOOK: Output: file:/Users/jsichi/ope
 PREHOOK: query: select key, count from hbase_table_3 order by key, count desc limit 5
 PREHOOK: type: QUERY
 PREHOOK: Input: default@hbase_table_3
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-44-32_965_1538708553566035002/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-32-42_797_4415526076675408910/10000
 POSTHOOK: query: select key, count from hbase_table_3 order by key, count desc limit 5
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@hbase_table_3
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-44-32_965_1538708553566035002/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-32-42_797_4415526076675408910/10000
 0	3
 2	1
 4	1
@@ -765,11 +765,11 @@ POSTHOOK: Output: default@hbase_table_4
 PREHOOK: query: SELECT * FROM hbase_table_4 ORDER BY key
 PREHOOK: type: QUERY
 PREHOOK: Input: default@hbase_table_4
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-44-44_558_7005505662989774902/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-32-54_472_3690760905908161841/10000
 POSTHOOK: query: SELECT * FROM hbase_table_4 ORDER BY key
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@hbase_table_4
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-44-44_558_7005505662989774902/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-32-54_472_3690760905908161841/10000
 98	val_98	99	100
 100	val_100	101	102
 PREHOOK: query: DROP TABLE hbase_table_5
@@ -790,11 +790,11 @@ POSTHOOK: Output: default@hbase_table_5
 PREHOOK: query: SELECT * FROM hbase_table_5 ORDER BY key
 PREHOOK: type: QUERY
 PREHOOK: Input: default@hbase_table_5
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-44-49_993_55354442785403380/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-32-59_042_9212792964735101793/10000
 POSTHOOK: query: SELECT * FROM hbase_table_5 ORDER BY key
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@hbase_table_5
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-44-49_993_55354442785403380/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-32-59_042_9212792964735101793/10000
 98	{"b":"val_98","c":"99"}
 100	{"b":"val_100","c":"101"}
 PREHOOK: query: DROP TABLE hbase_table_6
@@ -827,11 +827,11 @@ POSTHOOK: Output: default@hbase_table_6
 PREHOOK: query: SELECT * FROM hbase_table_6 ORDER BY key
 PREHOOK: type: QUERY
 PREHOOK: Input: default@hbase_table_6
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-45-01_880_6891496336862307220/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-33-11_147_8600250585578678749/10000
 POSTHOOK: query: SELECT * FROM hbase_table_6 ORDER BY key
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@hbase_table_6
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-45-01_880_6891496336862307220/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-33-11_147_8600250585578678749/10000
 98	{"val_98":"98"}
 100	{"val_100":"100"}
 PREHOOK: query: DROP TABLE hbase_table_7
@@ -866,13 +866,50 @@ POSTHOOK: Output: default@hbase_table_7
 PREHOOK: query: SELECT * FROM hbase_table_7 ORDER BY key
 PREHOOK: type: QUERY
 PREHOOK: Input: default@hbase_table_7
-PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-45-13_100_5693137614419238592/10000
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-33-21_772_1338432731952755766/10000
 POSTHOOK: query: SELECT * FROM hbase_table_7 ORDER BY key
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@hbase_table_7
-POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-05-12_13-45-13_100_5693137614419238592/10000
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-33-21_772_1338432731952755766/10000
 {"VAL_98":"99.0","val_98":"98"}	98
 {"VAL_100":"101.0","val_100":"100"}	100
+PREHOOK: query: DROP TABLE hbase_table_8
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE hbase_table_8
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE hbase_table_8(key int, value1 string, value2 int, value3 int) 
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES (
+"hbase.columns.mapping" = "a:b,a:c,d:e"
+)
+PREHOOK: type: CREATETABLE
+POSTHOOK: query: CREATE TABLE hbase_table_8(key int, value1 string, value2 int, value3 int) 
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES (
+"hbase.columns.mapping" = "a:b,a:c,d:e"
+)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: default@hbase_table_8
+PREHOOK: query: INSERT OVERWRITE TABLE hbase_table_8 SELECT key, value, key+1, key+2 
+FROM src WHERE key=98 OR key=100
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@hbase_table_8
+POSTHOOK: query: INSERT OVERWRITE TABLE hbase_table_8 SELECT key, value, key+1, key+2 
+FROM src WHERE key=98 OR key=100
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@hbase_table_8
+PREHOOK: query: SELECT * FROM hbase_table_8 ORDER BY key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@hbase_table_8
+PREHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-33-33_336_3377730421928251638/10000
+POSTHOOK: query: SELECT * FROM hbase_table_8 ORDER BY key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@hbase_table_8
+POSTHOOK: Output: file:/Users/jsichi/open/hive-trunk/build/hbase-handler/scratchdir/hive_2010-06-04_18-33-33_336_3377730421928251638/10000
+98	val_98	99	100
+100	val_100	101	102
 PREHOOK: query: DROP TABLE hbase_table_1
 PREHOOK: type: DROPTABLE
 POSTHOOK: query: DROP TABLE hbase_table_1
@@ -908,6 +945,11 @@ PREHOOK: type: DROPTABLE
 POSTHOOK: query: DROP TABLE hbase_table_7
 POSTHOOK: type: DROPTABLE
 POSTHOOK: Output: default@hbase_table_7
+PREHOOK: query: DROP TABLE hbase_table_8
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE hbase_table_8
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Output: default@hbase_table_8
 PREHOOK: query: DROP TABLE empty_hbase_table
 PREHOOK: type: DROPTABLE
 POSTHOOK: query: DROP TABLE empty_hbase_table