Kristam Subba Swathi created HIVE-3336: ------------------------------------------
Summary: [Hive-Hbase Integration]:Data is not inserted into the hbase table from the hive table if the value is null even if the row key is not null Key: HIVE-3336 URL: https://issues.apache.org/jira/browse/HIVE-3336 Project: Hive Issue Type: Bug Components: HBase Handler Affects Versions: 0.9.0 Reporter: Kristam Subba Swathi Scenario ------------ 1.create a new HBase table which is to be managed by Hive, use the STORED BY clause on CREATE TABLE as follows Query: {noformat} CREATE TABLE hbase_table_join(key int, value string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val") TBLPROPERTIES ("hbase.table.name" = "xyz_join"); {noformat} 2.Create two tables in hive and load data into the table as follows table1: {noformat} describe hive_hbase_1; OK empno int ename string deptno int hive> select * from hive_hbase_1; OK 1 a 1 2 q 10 3 w 12 4 w 12 4 w 12 5 r 13 {noformat} table2: {noformat} hive> describe hive_hbase_2; OK deptno int dname string count int Time taken: 0.214 seconds hive> select * from hive_hbase_2; OK 11 a 11 12 q 101 13 w 121 14 w 121 2 we13 NULL 4 w 12 5 r 13 {noformat} 3.Insert the join result of these tables into hbase_table_join as follows {noformat} hive> insert into table hbase_table_join select /*+mapjoin(hive_hbase_1)*/ hive_hbase_2.deptno,hive_hbase_1.ename from hive_hbase_1 right outer join hive_hbase_2 on hive_hbase_1.deptno=hive_hbase_2.deptno; {noformat} Actual result of the select query is --------------- {noformat} 11 NULL 12 w 12 w 12 w 13 r 14 NULL 2 NULL 4 NULL 5 NULL {noformat} But the above insert query is failing because of the following exception --------------------- {noformat} 2012-07-17 18:41:45,003 WARN [main] org.apache.hadoop.mapred.YarnChild: Exception running child : java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"deptno":11,"dname":"a","count":11} at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:161) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:400) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:335) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:152) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1232) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:147) Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"deptno":11,"dname":"a","count":11} at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:548) at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:143) ... 8 more Caused by: java.lang.IllegalArgumentException: No columns to insert at org.apache.hadoop.hbase.client.HTable.validatePut(HTable.java:969) at org.apache.hadoop.hbase.client.HTable.doPut(HTable.java:762) at org.apache.hadoop.hbase.client.HTable.put(HTable.java:748) at org.apache.hadoop.hive.hbase.HiveHBaseTableOutputFormat$1.write(HiveHBaseTableOutputFormat.java:98) at org.apache.hadoop.hive.ql.exec.FileSinkOperator.processOp(FileSinkOperator.java:588) at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471) {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira