AWS EMR Phoenix Kerberos 不工作

AWS EMR Phoenix Kerberos not working

我正在尝试让 Phoenix 与 kerberos 一起工作。 Kerberos 领域已设置,我能够从 keytab /etc/hbase.keytab

生成票证

但是 phoenix sqlline 客户端出现以下错误

错误:org.apache.hadoop.hbase.client.RetriesExhaustedException:无法获取位置(状态=,代码=0)

我做了以下更改

# 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

启动 Phoenix 客户端

/usr/lib/phoenix/bin/sqlline.py HOSTNAME.RealmName:2181:/hbase-secure:hbase/HOSTNAME.RealmName@RealmName:/etc/hbase.keytab

这似乎是 EMR 5.11 中的错误
在 ~/.bashrc

中设置 HBASE_CONF_DIR 后问题得到解决
sudo vi ~/.bashrc
add “export HBASE_CONF_DIR=/etc/hbase/conf/“
source ~/.bashrc

运行凤凰

/usr/lib/phoenix/bin/sqlline.py