apache - 如何在 beeline 中指定 TGT kerberos 票证缓存

标签 apache jdbc hive kerberos

我有这样的场景,我想使用多个用户/主体建立 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/

相关文章:

php - 我的脚本中是否存在内存泄漏,或者是另一个罪魁祸首?

java - 准备语句的 SQL 语法错误?

java - 使用 JDBC/Spring 解决 SQL 结果集错误

java - 停止 hiveserver2 的正确方法是什么?

apache - mod_rewrite 将一种文件后缀类型别名为另一种

ruby-on-rails - 为什么 Apache 还没有可行的 mod_ruby?

macos - Mamp Pro 4 : Apache won't start

oracle - 使 J2EE 应用程序避免更新数据库

hadoop - Spark RDD 抛出 NullPointerException

shell - 如何创建一个 unix 脚本来通过将表名作为文件的输入来循环 Hive SELECT 查询?