我有这样的场景,我想使用多个用户/主体建立 hive jdbc 连接。我可以获取多个 KERBEROS 票证并将它们存储在不同的缓存文件中。例如,一个可能位于/tmp/ticket1 中,另一个位于/tmp/ticket2 中。但是,当我执行 beeline 时,如何指定要使用的票证。我想以不同的用户身份运行查询。
最佳答案
据我所知你不能。整个 Hadoop 生态系统假设您在默认位置使用票证缓存 - 即使合法的 KRB5 环境变量也会被忽略(或者只是在某处搞乱一些硬编码的默认值)。
在我目前的任务中,我必须用纯 Java 开发一个粗略的“Beeline 模拟器”来处理这个问题。我花了几周的时间来解决 KRB 和 GSS 配置问题,包括各个版本的 OpenJDK 和 Sun JRE(加上 Linux 与 Windows)之间奇怪的语法不一致,但最终我让它工作了。
不,我永远不会与大公司客户和大律师员工之外的任何人分享它......
关于apache - 如何在 beeline 中指定 TGT kerberos 票证缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31083198/