gpt4 book ai didi

RDJDBC::dbConnect 无法连接到 HiveServer2 (kerberos +sasl)

转载 作者:可可西里 更新时间:2023-11-01 16:01:48 25 4
gpt4 key购买 nike

我正在尝试使用 RJDBC 连接到 Hive2,但失败并显示“GSS 启动失败”。但是,使用直线客户端同样可以正常工作。知道在具有相同凭据的同一节点上运行时可能导致不同行为的原因是什么吗?

drv <- RJDBC::JDBC("org.apache.hive.jdbc.HiveDriver", cp, "`")

以下仅用于说明目的,因为我想展示我使用的所有参数作为 JDBC url。

conn <- RJDBC::dbConnect(drv, "jdbc:hive2://node1:10000/default;principal=hive/hive_node@REALM;ssl=true;sslTrustStore=store_path;trustStorePassword=store_password", "user", "密码")

log4j:WARN 找不到记录器 (org.apache.hive.jdbc.Utils) 的附加程序。log4j:WARN 请正确初始化 log4j 系统。log4j:警告见http://logging.apache.org/log4j/1.2/faq.html#noconfig获取更多信息。.jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], 错误:java.sql.SQLException:无法使用 JDBC Uri 打开客户端传输:jdbc:hive2://:10000/default;principal=hive/hive_node@REALM;ssl=true;sslTrustStore=store_path;trustStorePassword=store_password:GSS 启动失败

最佳答案

对你来说有点晚了,但是......看看that post关于为 Hive/Impala JDBC 配置 Kerberos 身份验证的详细信息(另请注意,Kerberos 身份验证会忽略“用户”和“密码”连接参数)

本文假设您将密码存储在“keytab”文件中,并使用它来创建私有(private) Kerberos 票证。如果您想改用默认的公共(public)票证,则相应地更改 JAAS conf (即 useTicketCache=true useKeyTab=false 并且没有 keyTab 条目)

要将配置从您的 R 代码传递给 Java,最简单的方法是设置 JAVA_TOOL_OPTIONS env 变量之前任何其他引导 RJava 初始化

Sys.setenv("JAVA_TOOL_OPTIONS"="-Djava.security.auth.login.config=/Path/To/jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false")

PS:在 Windows 上,路径看起来像 C:/Path/To/jaas.conf(Java 自动将斜杠转换为反斜杠;由于 R 的方式,转义每个反斜杠更容易字符串解释 \)


最后说明:如果有 SCSS 用 “答案不应该依赖链接”标记,因为上述链接指向我在 S.O. 中的另一个帖子,那么他/她真的是个 SCSS ,我会很高兴当着他/她的面大声地用异国情调告诉他/她。

关于RDJDBC::dbConnect 无法连接到 HiveServer2 (kerberos +sasl),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38259625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com