使用 Rstudio windows 中的 R rJDBC 包连接到 hive(启用了 kerbero)

Posted

技术标签:

【中文标题】使用 Rstudio windows 中的 R rJDBC 包连接到 hive(启用了 kerbero)【英文标题】:Connecting to hive (kerberoes enabled) with R rJDBC package from Rstudio windows 【发布时间】:2016-04-01 16:53:59 【问题描述】:

尝试使用 R rjdbc 连接 Hive 2(启用 kerberoes 验证)时出现以下问题。使用simba驱动连接hive。

hiveConnection

.jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], 中的错误: java.sql.SQLException: [Simba]HiveJDBCDriver Invalid operation: Unable to get Principal Name for authentication ;

【问题讨论】:

您可能会看到以下异常有时与类路径上的 slf4j jar 问题有关。 Java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.format(Ljava/lang/String;Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple; . 您是否在默认票证缓存中创建了 Kerberos TGT?因为从 R 中很难配置 Java 安全库 (JAAS) 来设置主体(即 Kerberos 登录)、获取密码的方式等。 在默认位置(例如 Linux 上的 /etc/krb5.conf)是否有有效的 Kerberos 配置文件,其中包含域的 KDC 服务器位置等? 顺便说一句,Kerberos 领域通常是大写的。即使它映射到用小写写成的 Windows 域。 旁注:血腥的 SLF4J 消息与安全错误无关。 【参考方案1】:
    确保发出 kinit 并使用 klist 生成 kerberoes 票证 类路径上可用的给定 R 版本(32/64 位)的正确 Java 版本 根据您的 java 版本提供正确的 slf4j jar

假设您的代码没有逻辑问题,所有这些步骤都应该可以解决问题。

【讨论】:

以上是关于使用 Rstudio windows 中的 R rJDBC 包连接到 hive(启用了 kerbero)的主要内容,如果未能解决你的问题,请参考以下文章

R中的gbm崩溃

为 Windows 32 位安装哪个 R 和 RStudio 版本? [关闭]

R语言入门1:安装R和RStudio

RStudio 未检测到已安装的 R

r [连接到Rstudio中的SQLite数据库] #R #SQLite #RStudio

在 Windows 上的 rStudio 上将 r markdown 编织为 pdf 时出现错误 43