I am trying to get Phoenix work with kerberos. Kerberos realm are setup , i am able to generate tickets from keytab /etc/hbase.keytab
but phoenix sqlline client is giving following error
Error: org.apache.hadoop.hbase.client.RetriesExhaustedException: Can't get the locations (state=,code=0)
I have done following changes
# Issue ticket for principal
kinit -t /etc/hbase.keytab hbase/HOSTNAME.RealmName@RealmName
<!-- Configuring Phoenix Kerberos Properties in Hbase_site.xml -->
<property>
<name>phoenix.queryserver.kerberos.principal</name>
<value>hbase/_HOST@RealmName</value>
</property>
<property>
<name>phoenix.queryserver.kerberos.keytab</name>
<value>/etc/hbase.keytab</value>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase-secure</value>
</property>
<property>
<name>phoenix.queryserver.keytab.file</name>
<value>/etc/hbase.keytab</value>
</property>
<property>
<name>phoenix.queryserver.http.keytab.file</name>
<value>/etc/hbase.keytab</value>
</property>
<property>
<name>phoenix.queryserver.kerberos.http.principal</name>
<value>hbase/_HOST@RealmName</value>
</property>
<property>
<name>phoenix.queryserver.dns.nameserver</name>
<value>HOSTNAME.RealmName</value>
</property>
<property>
<name>phoenix.queryserver.dns.interface</name>
<value>eth0</value>
</property>
# Set hbase conf path (This seems to be a bug in EMR. This should be set by default.)
sudo vi ~/.bashrc
add “export HBASE_CONF_DIR=/etc/hbase/conf/ “
source ~/.bashrc
/usr/lib/phoenix/bin/sqlline.py HOSTNAME.RealmName:2181:/hbase-secure:hbase/HOSTNAME.RealmName@RealmName:/etc/hbase.keytab
This seems to be a bug in EMR 5.11
The issue was resolved after setting HBASE_CONF_DIR in ~/.bashrc
sudo vi ~/.bashrc
add “export HBASE_CONF_DIR=/etc/hbase/conf/“
source ~/.bashrc
run phoenix
/usr/lib/phoenix/bin/sqlline.py