I saw that, and was hoping I could work around it, since I was able to connect to the secure cluster using sqlline.
Do you know if this patch will also work with a kerberos ticket cache, or will we need to create keytabs for users and pass the keytab/principal in the connect string? On Mon, Jun 9, 2014 at 3:48 PM, anil gupta <[email protected]> wrote: > Hi Julian, > > Currently Phoenix-3.0 does not supports connecting to a secure HBase > cluster out of the box. Please have a look at > https://issues.apache.org/jira/browse/PHOENIX-19. This got commited in > 3.0 branch last weekend. You can checkout 3.0 branch from git( > https://git-wip-us.apache.org/repos/asf?p=phoenix.git) and do a local > build to get the phoenix-client.jar that works with Secure HBase. > Phoenix-19 will be part of 3.1 release. Let me know if you have further > questions. > > Thanks, > Anil Gupta > > > On Mon, Jun 9, 2014 at 12:24 PM, Justin Workman <[email protected]> > wrote: > >> 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 >> >> >> > > > -- > Thanks & Regards, > Anil Gupta >
