I am getting an error when using the Hive JDBC driver:

        java.lang.NoSuchMethodError:  
org.apache.thrift.EncodingUtils.setBit(BIZ)B

I've seen several messages suggesting that this is a problem due to different 
thrift jars in hbase and hive. To avoid this problem, I copied the Hive thrift 
jar (libthrift-0.9.0.jar) into the hbase/lib directory (and verified, with ps, 
that it's being picked up in the class path.)  Alas, I still get the error.

Individually, Hadoop, HBase and Hive all run fine.

The ps output does not show any other java process using any other =
version of libthrift.

Here are the versions that I'm using:

hadoop: 1.2.1
hbase: 0.94.12
hive: 0.10.0

The code that triggers the problem is simple:

                        Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
                        Connection con = 
DriverManager.getConnection("jdbc:hive://127.0.0.1:10000/default", "", "");
                        Statement stmt = con.createStatement();
                        ResultSet res = stmt.executeQuery("show tables");
                        // code blows up on next statement
                        while(res.next())
                        {
                                String str = res.getString(0);
                                System.out.println(str);
                        }
                        res.close();
                        stmt.close();
                        con.close();

The abbreviated stack trace looks like:

java.lang.NoSuchMethodError: org.apache.thrift.EncodingUtils.setBit(BIZ)B
        at 
org.apache.hadoop.hive.service.ThriftHive$fetchN_args.setNumRowsIsSet(ThriftHive.java:2401)
        at 
org.apache.hadoop.hive.service.ThriftHive$fetchN_args.setNumRows(ThriftHive.java:2388)
        at 
org.apache.hadoop.hive.service.ThriftHive$Client.send_fetchN(ThriftHive.java:157)
        at 
org.apache.hadoop.hive.service.ThriftHive$Client.fetchN(ThriftHive.java:150)
        at 
org.apache.hadoop.hive.jdbc.HiveQueryResultSet.next(HiveQueryResultSet.java:138)

Any clues as to what I should try next would be appreciated.

Reply via email to