Sorry I misspoke. Hbase is 0.94.6-cdh4.3.0. 

It is working via sqlline, just can't get squirrel SQL working. 

Sent from my iPhone

On Jun 10, 2014, at 11:42 AM, Jeffrey Zhong <jzhong@hortonworks.com> wrote:


Phoenix 3.0 doesn't work on hbase0.96+. Below is the compatibility matrix(http://phoenix.apache.org/download.html). In order for Phoenix work on hbase0.96 branch, there is discussion thread on https://issues.apache.org/jira/browse/PHOENIX-848 

  • Phoenix 3.x - HBase 0.94.x
  • Phoenix 4.x - HBase 0.98.1+

From: Justin Workman <justinjworkman@gmail.com>
Reply-To: <user@phoenix.apache.org>
Date: Monday, June 9, 2014 12:24 PM
To: "user@phoenix.incubator.apache.org" <user@phoenix.incubator.apache.org>
Subject: Connecting via SquirrelSQL

I am attempting to connect to Phoenix via SquirrelSQL and not having much luck. I am using Phoenix-3.0 on Hbase with CDH4.3.0 (Hbase 0.96.4-cdh4.3.0), and SquirrelSQL 3.5.3. Our Hbase environment is protected with Kerberos. 

I have modified the sqlline script to include the correct libraries and modifications to the Java command, and that is working fine. 

Here is what I am doing to try and get SquirrelSQL working. I have tried on both a Mac and Linux system.

I start up off kinit'ing prior to starting SquirrelSQL.

1) Copy hbase-site.xml and core-site.xml to lib directory of SquirrelSQL
2) Open SquirrelSQL->Drivers->Add New
3) I add phoenix-3.0.0-incubating-client-minimal.jar, all of its dependancies, hadoop-common, hadoop-auth and the hbase-security jar from CDH distribution to the extra class path
4) List Drivers and select the Phoenix driver.

Adding the driver at this point succeeds without error. I then proceed to setup the connection and click test, it will hang for a minute and then gives me the following stack trace.

java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.hbase.ipc.SecureRpcEngine not found
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)
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.hbase.ipc.SecureRpcEngine not found
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:175)
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$000(OpenConnectionCommand.java:45)
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$1.run(OpenConnectionCommand.java:104)
... 5 more
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.hbase.ipc.SecureRpcEngine not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1587)
at org.apache.hadoop.hbase.ipc.HBaseRPC.getProtocolEngine(HBaseRPC.java:99)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.ensureZookeeperTrackers(HConnectionManager.java:629)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:684)
at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:126)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated(ConnectionQueryServicesImpl.java:739)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQueryServicesImpl.java:1021)
at org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:1156)
at org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:422)
at org.apache.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCompiler.java:183)
at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:226)
at org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:908)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1351)
at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:131)
at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:112)
at net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:133)
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:167)
... 7 more
Caused by: java.lang.ClassNotFoundException: Class org.apache.hadoop.hbase.ipc.SecureRpcEngine not found
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1493)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1585)
... 23 more

FYI, I have also tried to include the hadoop, hbase and phoenix jar's in the lib directory of SquirrelSQL itself, however when adding the driver and selecting List Drivers SquirrelSQL just hangs forever.


Any help or insight would be greatly appreciated. The one thing I am not sure about is the Kerberos integration, and wether or not I will need to wait or include PHOENIX-19. However this patch appears to be for passing the principal and keytab to the driver, not using a ticket cache. I also don't think that is my problem right now, as it does not appear to be getting far enough to authenticate at this point.

Thanks
Justin



CONFIDENTIALITY NOTICE
NOTICE: This message is intended for the use of the individual or entity to which it is addressed and may contain information that is confidential, privileged and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient, you are hereby notified that any printing, copying, dissemination, distribution, disclosure or forwarding of this communication is strictly prohibited. If you have received this communication in error, please contact the sender immediately and delete it from your system. Thank You.