I am a newbie to Hbase & phoenix. I am trying to connect to HBASE via Phoenix JDBC Driver using Squirrel Client. Somehow I seem to get a strange error where the runtime complains of a NoSuchMethod Exception. I have included the relevant client jar phoenix-4.4.0-HBase-1.0-client in the lib folder of Squirrel and have registered the driver succesfully. When I try to connect I get this exception which seems to be a bit weird. I have xtracted the jar and seen that indeed the method getCurrentUser() exists in the org/apache/hadoop/security/UserGroupInformation.class file.

java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.NoSuchMethodError: org.apache.hadoop.security.UserGroupInformation.getCurrentUser()Lorg/apache/hadoop/security/UserGroupInformation;
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:202)
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(OpenConnectionCommand.java:132)
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$100(OpenConnectionCommand.java:45)
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$2.run(OpenConnectionCommand.java:115)
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:744)
1

There are 1 answers

0
Rashmi Mahale On BEST ANSWER

I finally uncovered it. The hadoop-0.20.2-core.jar and phoenix-4.4.0-HBase-1.0-client.jar have common overlapping classes, which were in the lib folder of the Squirrel client. hadoop-0.20.2-core.jar is required to connect to hive where as phoenix client jar is required to connect to hbase.

Whenever I need to connect to one or the other I have to exclude one of these from the lib folder while launching squirrel client.