Created on 01-18-2017 03:58 PM - edited 08-19-2019 01:57 AM
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
Do I need to create phoenixuser principal and use that keytab instead? and what is phoenix.user and phoenix.password?
Created 01-18-2017 11:22 PM
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
Created 01-19-2017 05:20 AM
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.
Created 01-20-2017 03:33 AM