Support Questions

Find answers, ask questions, and share your expertise

HDP 2.5 How to connect Zeppelin to Phoenix in secured cluster

avatar
Master Collaborator

HDP 2.5 secured cluster with Zeppelin and HBase installed. I could connect to Phoenix using the sqlline.py utility using the following parameter.

/usr/hdp/current/phoenix-client/bin/sqlline.py <zk1>,<zk2>,<zk3>:2181:/hbase-secure:hbase@DOMAIN.COM:/etc/security/keytabs/hbase.headless.keytab

However when I try to use similar parameter for jdbc conn string in phoenix, I got

null
org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=1, exceptions:
Wed Jan 18 15:13:11 UTC 2017, RpcRetryingCaller{globalStartTime=1484752390908, pause=100, retries=1}, org.apache.hadoop.hbase.MasterNotRunningException: com.google.protobuf.ServiceException: java.io.IOException: Broken pipe

class org.apache.zeppelin.interpreter.InterpreterException

The jdbc interpreter settings for Phoenix are

11499-screen-shot-2017-01-18-at-105658-am.png

Do I need to create phoenixuser principal and use that keytab instead? and what is phoenix.user and phoenix.password?

1 ACCEPTED SOLUTION

avatar
Super Collaborator

@Qi Wang

Well, to fix it you will need to proceed few steps:

1. In the jdbc interpreters configuration you need to remove default artifacts for phoenix and hbase (phoenix-4.7... and hbase-1.1.3...).

2. add new artifact for phoenix-client.jar (just provide the path /usr/hdp/current/phoenix-client/phoenix-client.jar)

3. You need to set up interpreter to properly find hbase configuration dir. It could be done by adding to the end of zeppelin-env.sh

export CLASSPATH=$CLASSPATH:/etc/hbase/conf

using Ambari and after restart of Zeppelin service everything is supposed to work

View solution in original post

11 REPLIES 11

avatar
Super Collaborator

I checked the script more carefully. It looks like adding

export CLASSPATH=$CLASSPATH:/etc/hbase/conf

to zeppelin-env.sh using Zeppelin configuration in Ambari would be enough.

avatar
Master Collaborator

@Sergey Soldatov

Add it in ambari at the end of "Advanced zeppelin-env" -> "zeppelin_env_content" worked perfectly.