[ https://issues.apache.org/jira/browse/HIVE-10990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14712035#comment-14712035 ]
Kevin Ludwig commented on HIVE-10990: ------------------------------------- so my create table is this: bash-4.1# cat hbasetest.hql CREATE TABLE hbasetest(key string, val string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES("hbase.columns.mapping" = ":key,cf1:val") TBLPROPERTIES("hbase.table.name" = "xyz"); bash-4.1# And when I run it I get this: bash-4.1# beeline -n hive -u jdbc:hive2://localhost:10001 -f ./hbasetest.hql Connecting to jdbc:hive2://localhost:10001 Connected to: Apache Hive (version 1.2.1) Driver: Hive JDBC (version 1.2.1) Transaction isolation: TRANSACTION_REPEATABLE_READ 0: jdbc:hive2://localhost:10001> set hbase.zookeeper.quorum=zookeeper; No rows affected (0.081 seconds) 0: jdbc:hive2://localhost:10001> 0: jdbc:hive2://localhost:10001> CREATE TABLE hbasetest(key string, val string) 0: jdbc:hive2://localhost:10001> STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 0: jdbc:hive2://localhost:10001> WITH SERDEPROPERTIES("hbase.columns.mapping" = ":key,cf1:val") 0: jdbc:hive2://localhost:10001> TBLPROPERTIES("hbase.table.name" = "xyz"); Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)V (state=08S01,code=1) Closing: 0: jdbc:hive2://localhost:10001 bash-4.1# And with verbose i get this: bash-4.1# beeline -n hive -u jdbc:hive2://localhost:10001 -f ./hbasetest.hql --verbose issuing: !connect jdbc:hive2://localhost:10001 hive '' Connecting to jdbc:hive2://localhost:10001 Connected to: Apache Hive (version 1.2.1) Driver: Hive JDBC (version 1.2.1) Transaction isolation: TRANSACTION_REPEATABLE_READ 0: jdbc:hive2://localhost:10001> set hbase.zookeeper.quorum=zookeeper; Getting log thread is interrupted, since query is done! No rows affected (0.078 seconds) 0: jdbc:hive2://localhost:10001> 0: jdbc:hive2://localhost:10001> CREATE TABLE hbasetest(key string, val string) 0: jdbc:hive2://localhost:10001> STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 0: jdbc:hive2://localhost:10001> WITH SERDEPROPERTIES("hbase.columns.mapping" = ":key,cf1:val") 0: jdbc:hive2://localhost:10001> TBLPROPERTIES("hbase.table.name" = "xyz"); Getting log thread is interrupted, since query is done! Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)V (state=08S01,code=1) java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)V at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:296) at org.apache.hive.beeline.Commands.execute(Commands.java:848) at org.apache.hive.beeline.Commands.sql(Commands.java:713) at org.apache.hive.beeline.BeeLine.dispatch(BeeLine.java:973) at org.apache.hive.beeline.BeeLine.execute(BeeLine.java:813) at org.apache.hive.beeline.BeeLine.executeFile(BeeLine.java:794) at org.apache.hive.beeline.BeeLine.begin(BeeLine.java:763) at org.apache.hive.beeline.BeeLine.mainWithInputRedirection(BeeLine.java:484) at org.apache.hive.beeline.BeeLine.main(BeeLine.java:467) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.RunJar.run(RunJar.java:221) at org.apache.hadoop.util.RunJar.main(RunJar.java:136) Closing: 0: jdbc:hive2://localhost:10001 bash-4.1# In a prior comment [~swarnim] suggested the error originates from https://github.com/apache/hive/blob/release-1.2.0/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java#L214, but I don't think this is the case. Because I can force the addFamily method to throw by omitting a column family from "hbase.columns.mapping", and I get a stack trace that points to the code referenced earlier: bash-4.1# beeline -n hive -u jdbc:hive2://localhost:10001 -f ./hbasetest.hql Connecting to jdbc:hive2://localhost:10001 Connected to: Apache Hive (version 1.2.1) Driver: Hive JDBC (version 1.2.1) Transaction isolation: TRANSACTION_REPEATABLE_READ 0: jdbc:hive2://localhost:10001> set hbase.zookeeper.quorum=zookeeper; No rows affected (0.079 seconds) 0: jdbc:hive2://localhost:10001> 0: jdbc:hive2://localhost:10001> CREATE TABLE hbasetest(key string, val string) 0: jdbc:hive2://localhost:10001> STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 0: jdbc:hive2://localhost:10001> WITH SERDEPROPERTIES("hbase.columns.mapping" = ":key,:val") 0: jdbc:hive2://localhost:10001> TBLPROPERTIES("hbase.table.name" = "xyz"); Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:java.lang.IllegalArgumentException: Family name can not be empty at com.google.common.base.Preconditions.checkArgument(Preconditions.java:88) at org.apache.hadoop.hbase.HColumnDescriptor.isLegalFamilyName(HColumnDescriptor.java:487) at org.apache.hadoop.hbase.HColumnDescriptor.<init>(HColumnDescriptor.java:440) at org.apache.hadoop.hbase.HColumnDescriptor.<init>(HColumnDescriptor.java:398) at org.apache.hadoop.hbase.HColumnDescriptor.<init>(HColumnDescriptor.java:366) at org.apache.hadoop.hbase.HColumnDescriptor.<init>(HColumnDescriptor.java:317) at org.apache.hadoop.hive.hbase.HBaseStorageHandler.preCreateTable(HBaseStorageHandler.java:214) at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:664) at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:657) at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:156) at com.sun.proxy.$Proxy6.createTable(Unknown Source) at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:714) at org.apache.hadoop.hive.ql.exec.DDLTask.createTable(DDLTask.java:4135) at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:306) at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:160) at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:88) at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1653) at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1412) at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1195) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1059) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1054) at org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:154) at org.apache.hive.service.cli.operation.SQLOperation.access$100(SQLOperation.java:71) at org.apache.hive.service.cli.operation.SQLOperation$1$1.run(SQLOperation.java:206) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) at org.apache.hive.service.cli.operation.SQLOperation$1.run(SQLOperation.java:218) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) ) (state=08S01,code=1) Closing: 0: jdbc:hive2://localhost:10001 bash-4.1# > Compatibility Hive-1.2 an hbase-1.0.1.1 > --------------------------------------- > > Key: HIVE-10990 > URL: https://issues.apache.org/jira/browse/HIVE-10990 > Project: Hive > Issue Type: Bug > Components: Beeline, HBase Handler, HiveServer2 > Affects Versions: 1.2.0 > Reporter: gurmukh singh > Assignee: Swarnim Kulkarni > > Hive external table works fine with Hbase. > Hive-1.2 and hbase-1.0.1.1, hadoop-2.5.2 > Not able to create a table from hive in hbase. > 1: jdbc:hive2://edge1.dilithium.com:10000/def> TBLPROPERTIES > ("hbase.table.name" = "xyz"); > FAILED: Execution Error, return code 1 from > org.apache.hadoop.hive.ql.exec.DDLTask. > org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)V > Error: Error while processing statement: FAILED: Execution Error, return code > 1 from org.apache.hadoop.hive.ql.exec.DDLTask. > org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)V > (state=08S01,code=1) > [hdfs@edge1 cluster]$ hive > 2015-06-12 17:56:49,952 WARN [main] conf.HiveConf: HiveConf of name > hive.metastore.local does not exist > Logging initialized using configuration in > jar:file:/usr/local/cluster/apache-hive-1.2.0-bin/lib/hive-common-1.2.0.jar!/hive-log4j.properties > SLF4J: Class path contains multiple SLF4J bindings. > SLF4J: Found binding in > [jar:file:/usr/local/cluster/apache-hive-1.2.0-bin/auxlib/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class] > SLF4J: Found binding in > [jar:file:/usr/local/cluster/hadoop-2.5.2/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] > SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an > explanation. > SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] > hive> CREATE TABLE hbase_table_1(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"); > FAILED: Execution Error, return code 1 from > org.apache.hadoop.hive.ql.exec.DDLTask. > org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)V > ======================= > scan complete in 1535ms > 14 driver classes found > Compliant Version Driver Class > no 5.1 com.mysql.jdbc.Driver > no 5.1 com.mysql.jdbc.NonRegisteringDriver > no 5.1 com.mysql.jdbc.NonRegisteringReplicationDriver > no 5.1 com.mysql.jdbc.ReplicationDriver > yes 1.2 org.apache.calcite.avatica.remote.Driver > yes 1.2 org.apache.calcite.jdbc.Driver > yes 1.0 org.apache.commons.dbcp.PoolingDriver > yes 10.11 org.apache.derby.jdbc.AutoloadedDriver > yes 10.11 org.apache.derby.jdbc.Driver42 > yes 10.11 org.apache.derby.jdbc.EmbeddedDriver > yes 10.11 org.apache.derby.jdbc.InternalDriver > no 1.2 org.apache.hive.jdbc.HiveDriver > yes 1.0 org.datanucleus.store.rdbms.datasource.dbcp.PoolingDriver > no 5.1 org.gjt.mm.mysql.Driver -- This message was sent by Atlassian JIRA (v6.3.4#6332)