【问题标题】:RDJDBC::dbConnect failing to connect to HiveServer2 (kerberos +sasl)RDJDBC::dbConnect 无法连接到 HiveServer2 (kerberos +sasl)
【发布时间】:2016-11-10 14:34:55
【问题描述】:

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

drv

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

conn

log4j:WARN 找不到记录器 (org.apache.hive.jdbc.Utils) 的附加程序。 log4j:WARN 请正确初始化 log4j 系统。 log4j:WARN 请参阅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 启动失败

【问题讨论】:

    标签: r hadoop jdbc kerberos rjdbc


    【解决方案1】:

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

    该帖子假定您将密码存储在“keytab”文件中,并使用它来创建私有 Kerberos 票证。如果您想改用默认的公共票证,则相应地更改 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 字符串解释 \ 的方式,转义每个反斜杠更容易)


    最后说明:如果有任何混蛋用 “答案不应依赖链接” 标记此内容,因为上述链接指向我在 SO 中的另一个帖子,那么他/她真的是个混蛋,我会高兴地当面告诉他/她,大声地用异国情调的话。

    【讨论】:

      猜你喜欢
      • 2015-05-08
      • 1970-01-01
      • 2019-08-24
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多