Community Articles

Find and share helpful community-sourced technical articles.
Labels (1)
avatar

The Phoenix documentation here leaves out a few pieces in order to make a successful connection to HBase, through the Phoenix Driver. They assume that the connection is from the 'localhost'. May work great, but that's unlikely in the real world.

Required Jars

phoenix-client.jar hbase-client.jar (not mentioned in the Phoenix Docs)

URL Details

The full adbc connection URL syntax for phoenix is:

Basic Connections jdbc:phoneix[:zk_quorum][:zk_port][:zk_hbase_path]

The "zk_quorum" is a comma separated list of the ZooKeeper Servers.

The "zk_port" is the ZooKeeper port.

The "zk_hbase_path" is the path used by Hbase to stop information about the instance. On a 'non' kerberized cluster the default zk_hbase_path for HDP is '/hbase-unsecure'.

Sample JDBC URL
jdbc:phoenix:m1.hdp.local,m2.hdp.local,d1.hdp.local:2181:/hbase-unsecure
For Kerberos Cluster Connections
jdbc:phoneix[:zk_quorum][:zk_port][:zk_hbase_path][:headless_keytab_file:principal]
Sample JDBC URL
jdbc:phoenix:m1.hdp.local,m2.hdp.local,d1.hdp.local:2181:/hbase-secure:/Users/dstreev/keytabs/myuser.headless.keytab:dstreev@HDP.LOCAL

They say that the above items in the url beyond 'phoenix' are optional if the clusters 'hbase-site.xml' file is in the path. I found that when I presented a copy of the 'hbase-site.xml' from the cluster and left off the optional elements, I got errors referencing 'Failed to create local dir'.

When I connected successfully from DBVisualizer to HBase with the Phoenix JDBC Driver, it took about 10-20 seconds to connect.

16,246 Views
Comments
avatar
Super Guru

Hey @David Streever

I think you have the ordering of keytab and principal in the URL reversed. Per the code, it reads the principal and then the keytab.

avatar
New Contributor

How can i pass reference of hbase-site.xml file in Phoenix JDBC java code?

avatar
Explorer

I think this is for thick driver since thin one does not require HBase client jar.

avatar
Explorer

Hi Team, i have added Hbase client and phoenix core jar which has hbase client jar within it.

 

I have the hbase and core site xmls.

 

i get the Hconnection established message. But then i get 

"MESSAGE":"Reading reply sessionid:0x200239e26e51663, packet:: clientPath:/hbase serverPath:/hbase finished:false header:: 16,8 replyHeader:: 16,313534022349,0 request:: '/hbase,F response:: v{'meta-region-server,'rs,'splitWAL,'backup-masters,'flush-table-proc,'master-maintenance,'online-snapshot,'switch,'master,'running,'tokenauth,'draining,'namespace,'hbaseid,'table

 

What could be the issue