我有这种情况,我希望使用多个用户/主体来建立hive jdbc连接。我可以获得多个KERBEROS票证并将它们存储在不同的缓存文件中。例如,一个可以在/ tmp / ticket1中,另一个可以在/ tmp / ticket2中。但是,当我执行beeline时,如何指定要使用的票证。我想以不同的用户身份运行查询。
答案 0 :(得分:1)
AFAIK你不能。整个Hadoop生态系统假定您在默认位置使用票证缓存 - 即使合法的KRB5环境变量被忽略(或者只是在某处混淆了某些硬编码默认值)。
在我目前的任务中,我必须开发一个原始的" Beeline模拟器"在普通的Java中处理该问题。我花了几周的时间来解决KRB和GSS配置问题,包括各种版本的OpenJDK和Sun JRE(加上Linux与Windows)之间的奇怪语法不一致,但最后我得到了它。
不,我永远不会与Big Lawyer工作人员在Big Corp客户以外的任何人分享......