【问题标题】:R: Problems with connecting to Hive2 via RJDBCR:通过 RJDBC 连接到 Hive2 的问题
【发布时间】:2016-09-23 21:50:55
【问题描述】:

这就是我所做的:

第一步,从 Cloudera 获取最新的 JDBC 驱动程序集。

第二步,R代码:

require(RJDBC)
drv <- JDBC(driverClass = "com.cloudera.hive.jdbc41.HS2Driver",
            classPath = "C:/Rtools/JDBC_Hive/HiveJDBC41.jar")
# Stored Jars with RTools
for(l in list.files("C:/Rtools/JDBC_Hive", "jar$")){
  .jaddClassPath(paste0("C:/Rtools/JDBC_Hive/",l))
}
con <- dbConnect(drv, "jdbc:hive2://host:port/default;AuthMech=3;UID=login;PWD=password")
# Obviously host, port, log, pass has been substituted

返回:

Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1],  : 
  java.sql.SQLException: [Cloudera][HiveJDBCDriver](500151) Error setting/closing session: Open Session Error.

在网上寻找类似的错误并没有产生明显的原因/解决方案。

另外,值得一提的是,使用 DBeaver 等专用工具连接到 db 绝对没有问题。

可能的问题:开箱即用的 Cloudera JDBC 驱动程序集不够。也许需要额外的配置?

在第一次运行时,除了 500151 异常,还有:

log4j:WARN No appenders could be found for logger (org.apache.thrift.transport.TSaslTransport).
log4j:WARN Please initialize the log4j system properly.

错误不会在随后的连接尝试中持续存在。

更新:

显然连接/身份验证工作得很好,但不知何故,驱动程序也会自动传递奇怪的命令“set -v”,该命令应该测试 hive 理解各种 SQL 命令的能力。这是进程以异常终止的地方。

【问题讨论】:

    标签: r jdbc


    【解决方案1】:

    问题解决了。使用了不同的罐子: https://github.com/timveil/hive-jdbc-uber-jar

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      • 2015-01-08
      • 1970-01-01
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多