【发布时间】:2016-09-07 06:09:37
【问题描述】:
我已经在 Linux 服务器 (Red Hat) 上设置了一个启用了 Kerberos 安全性的 hive 环境。而且我需要使用 JDBC 从远程 Windows 机器连接到配置单元。
所以,我在 linux 机器上运行了 hiveserver2,并且我已经完成了“kinit”。
现在我尝试从 windows 端的 java 程序与这样的测试程序连接,
Class.forName("org.apache.hive.jdbc.HiveDriver");
String url = "jdbc:hive2://<host>:10000/default;principal=hive/_HOST@<YOUR-REALM.COM>"
Connection con = DriverManager.getConnection(url);
我收到以下错误,
Exception due to: Could not open client transport with JDBC Uri:
jdbc:hive2://<host>:10000/;principal=hive/_HOST@YOUR-REALM.COM>:
GSS initiate failed
我在这里做错了什么?我检查了许多论坛,但无法找到合适的解决方案。任何答案将不胜感激。
谢谢
【问题讨论】:
-
好的,所以您现在有两种不同的解决方案:安装(正确)MIT Kerberos Windows 客户端(使用您的自定义 Kerberos 配置),并希望 JAAS 自动找到默认票证缓存而无需任何其他配置;或者不安装任何东西,只需附加一个(正确的)JAAS 配置文件(加上您的自定义 Kerberos 配置)。选择一个。
-
请注意,“MIT Kerberos 客户端”解决方案每天都需要
kinit,这会使批处理执行的调度变得复杂。