[
https://issues.apache.org/jira/browse/PHOENIX-19?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13918849#comment-13918849
]
Anil Gupta commented on PHOENIX-19:
-----------------------------------
[~jamestaylor]: Please find attached the Initial patch.
Problem 1:
In eclipse, i ran through the code(using SecureClusterConnectTest class) to
connect Phoenix to HBase and it successfully connects to the cluster. However,
after connecting i get ClassNotFoundException error:
Exception in thread "main" java.lang.RuntimeException:
java.lang.ClassNotFoundException: org.apache.hadoop.hbase.ipc.SecureRpcEngine
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:867)
at
org.apache.hadoop.hbase.ipc.HBaseRPC.getProtocolEngine(HBaseRPC.java:99)
at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.ensureZookeeperTrackers(HConnectionManager.java:734)
at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:789)
at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:127)
at
com.salesforce.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated(ConnectionQueryServicesImpl.java:615)
at
com.salesforce.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQueryServicesImpl.java:839)
at
com.salesforce.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:990)
at
com.salesforce.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:388)
at
com.salesforce.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCompiler.java:153)
at
com.salesforce.phoenix.jdbc.PhoenixStatement$ExecutableCreateTableStatement.executeUpdate(PhoenixStatement.java:358)
at
com.salesforce.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1055)
at
com.salesforce.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1034)
at
com.salesforce.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:87)
at
com.salesforce.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:115)
at
phoenix.test.SecureClusterConnectTest.main(SecureClusterConnectTest.java:21)
Caused by: java.lang.ClassNotFoundException:
org.apache.hadoop.hbase.ipc.SecureRpcEngine
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:249)
at
org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:820)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:865)
... 15 more
Phoenix is referring to hbase-0.94.12 jar. To my surprise,
org.apache.hadoop.hbase.ipc.SecureRpcEngine class is not present in that
version. I am running my cluster on cdh4.5.0. and cdh4.5.0 hbase jar has that
class.
Problem 2:
After compiling phoenix with patch, i tried to run phoenix using sqlline.sh
script on non secure cluster by using command:
sqlline.sh jdbc:phoenix:<zk>
I get this error:
com.salesforce.phoenix.jdbc.PhoenixDriver
java.lang.NullPointerException
sqlline version 1.1.2
I have enabled debug logs but still i dont get any logs when i invoke phoenix
on console.
Could you please review the code and tell me how to resolve the above two
problems. Thanks.
> Enhance JDBC connection of Phoenix to support connecting to a Secure HBase
> cluster.
> -----------------------------------------------------------------------------------
>
> Key: PHOENIX-19
> URL: https://issues.apache.org/jira/browse/PHOENIX-19
> Project: Phoenix
> Issue Type: Improvement
> Affects Versions: 3.0.0
> Reporter: Anil Gupta
> Labels: hbase, jdbc, secure
> Fix For: 3.0.0
>
> Attachments: phoenix-19.patch
>
>
> This is being moved from github
> https://github.com/forcedotcom/phoenix/issues/550 to JIRA.
> As per my discussion with James Taylor over here
> https://groups.google.com/forum/#!searchin/phoenix-hbase-user/secure$20cluster/phoenix-hbase-user/XHg2wXK4Hqo/qVTm92WLxUkJ
> and some other email exchanges. This ticket is to enhance the JDBC driver of
> phoenix so that user can pass keytab and principal to connect to a secure
> cluster.
> As per our discussion over email, could you please outline the changes
> required to make this enhancement?
--
This message was sent by Atlassian JIRA
(v6.2#6252)