[ https://issues.apache.org/jira/browse/HIVE-15204?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15669397#comment-15669397 ]
Anshuman commented on HIVE-15204: --------------------------------- This is almost a show-stopper for 2.1.0 hive-hbase users. Can we plan for 2.1.1 ? > Hive-Hbase integration thorws "java.lang.ClassNotFoundException: > NULL::character varying" (Postgres) > ---------------------------------------------------------------------------------------------------- > > Key: HIVE-15204 > URL: https://issues.apache.org/jira/browse/HIVE-15204 > Project: Hive > Issue Type: Bug > Components: HBase Handler > Affects Versions: 2.1.0 > Environment: apache-hive-2.1.0-bin > hbase-1.1.1 > Reporter: Anshuman > Labels: Postgres > > When doing hive to hbase integration, we have observed that current Apache > Hive 2.x is not able to recognise 'NULL::character varying' (Variant data > type of NULL in prostgres) properly and throws the > java.lang.ClassNotFoundException exception. > Exception: > ERROR ql.Driver: FAILED: RuntimeException java.lang.ClassNotFoundException: > NULL::character varying > java.lang.RuntimeException: java.lang.ClassNotFoundException: NULL::character > varying > .... > Caused by: java.lang.ClassNotFoundException: NULL::character varying > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > Reason: > org.apache.hadoop.hive.ql.metadata.Table.java > final public Class<? extends InputFormat> getInputFormatClass() { > if (inputFormatClass == null) { > try { > String className = tTable.getSd().getInputFormat(); > if (className == null) { /*If the className is one of the postgres > variant of NULL i.e. 'NULL::character varying' control is going to else block > and throwing error.*/ > if (getStorageHandler() == null) { > return null; > } > inputFormatClass = getStorageHandler().getInputFormatClass(); > } else { > inputFormatClass = (Class<? extends InputFormat>) > Class.forName(className, true, > Utilities.getSessionSpecifiedClassLoader()); > } > } catch (ClassNotFoundException e) { > throw new RuntimeException(e); > } > } > return inputFormatClass; > } > Steps to reproduce: > Hive 2.x (e.g. apache-hive-2.1.0-bin) and HBase (e.g. hbase-1.1.1) > 1. Install and configure Hive, if it is not already installed. > 2. Install and configure HBase, if it is not already installed. > 3. Configure the hive-site.xml File (as per recommended steps) > 4. Provide necessary jars to Hive (as per recommended steps) > 4. Create table in HBase as shown below - > create 'hivehbase', 'ratings' > put 'hivehbase', 'row1', 'ratings:userid', 'user1' > put 'hivehbase', 'row1', 'ratings:bookid', 'book1' > put 'hivehbase', 'row1', 'ratings:rating', '1' > > put 'hivehbase', 'row2', 'ratings:userid', 'user2' > put 'hivehbase', 'row2', 'ratings:bookid', 'book1' > put 'hivehbase', 'row2', 'ratings:rating', '3' > > put 'hivehbase', 'row3', 'ratings:userid', 'user2' > put 'hivehbase', 'row3', 'ratings:bookid', 'book2' > put 'hivehbase', 'row3', 'ratings:rating', '3' > > put 'hivehbase', 'row4', 'ratings:userid', 'user2' > put 'hivehbase', 'row4', 'ratings:bookid', 'book4' > put 'hivehbase', 'row4', 'ratings:rating', '1' > 5. Create external table as shown below > CREATE EXTERNAL TABLE hbasehive_table > (key string, userid string,bookid string,rating int) > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' > WITH SERDEPROPERTIES > ("hbase.columns.mapping" = > ":key,ratings:userid,ratings:bookid,ratings:rating") > TBLPROPERTIES ("hbase.table.name" = "hivehbase"); > 6. select * from hbasehive_table; > FAILED: RuntimeException java.lang.ClassNotFoundException: NULL::character > varying -- This message was sent by Atlassian JIRA (v6.3.4#6332)