Thanks for the link, Mujtaba. Here is the sample connection string that i use with Squirell: jdbc:<ZK_quorum>:<zk_port>:<hbase_root_dir>:<keytab_file>:<principal>
Please let me know if you run into problems. Thanks, Anil Gupta On Tue, Jun 10, 2014 at 11:49 AM, Mujtaba Chohan <[email protected]> wrote: > Last successful build 3.1-SNAPSHOT jars are at > > https://builds.apache.org/job/Phoenix-3.0-hadoop1/lastSuccessfulBuild/artifact/ > > On Tue, Jun 10, 2014 at 11:28 AM, anil gupta <[email protected]> > wrote: > > Hi Justin, > > > > This ticket does not uses ticket cache. You will need to have keytab file > > and principal to login. > > > > It's a blessing in disguise that you are still using cdh4.3. Phoenix > used to > > work with secure hbase prior to cdh4.5 releases. I also ran it with > cdh4.4. > > However, IMO using ticket cache is like a work around because the > solution > > is not guaranteed to work with all cdh releases. > > Additionally, it will be tricky to use ticket cache with Squirell. > > I am able to connect to squirrell very easily with help of Phoenix-19. > So, > > it's a cleaner solution. > > I can try to provide you the phoenix-client.jar with that patch if you > want. > > I am also wondering if there are any nightly builds in Phoenix. In that > case > > you can directly pick up the jar from there. > > > > Thanks, > > Anil Gupta > > > > On Jun 10, 2014, at 11:06 AM, Justin Workman <[email protected]> > > wrote: > > > > 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 > > > > > -- Thanks & Regards, Anil Gupta
