无法获取配置单元的 Kerberos 领域 jdbc

Can't get Kerberos realm for hive jdbc

我在 Kerberos 环境中使用配置单元,遇到以下问题:

beeline> !connect jdbc:hive2://xx.xx.xx.xx:10000/default;principal=hive/emr-header-1.xxx@EMR.46727.COM
Connecting to jdbc:hive2://xx.xx.xx.xx:10000/default;principal=hive/emr-header-1.xxx@EMR.46727.COM
21/01/12 23:00:35 [main]: WARN jdbc.HiveConnection: Failed to connect to xx.xx.xx.xx:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://xx.xx.xx.xx:10000/default;principal=hive/emr-header-1.xx@EMR.46727.COM: Can't get Kerberos realm (state=08S01,code=0)

我的集群的特殊之处在于 krb5.conf 不在 /etc/krb5.conf 中,而是在另一个位置。我已经将 KRB5_CONFIG 导出为新路径,但它仍然不起作用,我需要做什么才能使用自定义 krb5.conf ?谢谢

终于找到了解决方案,我可以通过指定 java 属性 java.security.krb5.conf 来指定自定义 krb5.conf,例如-Djava.security.krb5.conf=/etc/myconf/krb5.conf

有时 export KRB5_CONFIG=/etc/krb5/krb5.conf 无效!

所以对默认 krb5.conf 位置

进行软 link

rm -rf /etc/krb5.conf && ln -s /etc/krb5/krb5.conf /etc/krb5.conf

/etc/krb5/krb5.conf 是我的自定义 krb5.conf 文件