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.a
waitConnection(OpenConnectionCommand.java:132)
at
net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.a
ccess$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:11
45)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:6
15)
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.e
xecuteConnect(OpenConnectionCommand.java:175)
at
net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.a
ccess$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(Conn
ectionQueryServicesImpl.java:739)
at
org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQ
ueryServicesImpl.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.ja
va:226)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java
:908)
at
org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQuerySer
vicesImpl.java:1351)
at
org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriv
er.java:131)
at
org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.
java:112)
at
net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriver
Manager.java:133)
at
net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.e
xecuteConnect(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.
|