【问题标题】:RJDBC hive, connect failedRJDBC 配置单元,连接失败
【发布时间】:2020-05-19 03:09:50
【问题描述】:

我按照多个教程尝试使用 RJDBC 连接到 Hive,但没有成功。

这是我所拥有的:

library(DBI)
library(rJava)
library(RJDBC)


driver <- JDBC('org.apache.hive.jdbc.HiveDriver',
            classPath = list.files("/home/cdsw/R",pattern="jar$",full.names=T),
            identifier.quote="`")

USERNAME <- "MyUser"
PASSWORD <- "MySecretPassWord"
HOSTNAME <- "my.host.net"
PORT <- 10000

server <- sprintf('jdbc:hive2://%s:%s', HOSTNAME, PORT)

conn <- dbConnect(driver, server,
                  USERNAME, PASSWORD)

我已经下载并放置在"/home/cdsw/R/" jar 文件。

list.files("/home/cdsw/R",pattern="jar$",full.names=T)

[1] "/home/cdsw/R/hadoop-common-2.6.0-cdh5.16.99.jar"
[2] "/home/cdsw/R/hive-jdbc-1.1.0-cdh5.16.99.jar"

我也尝试过最新版本,但始终与相同的 Cloudera 版本同步。即使我的版本是 5.XX。

我很确定 HOSTNAME 是正确的,因为我已经在 Python 中使用相同的主机名/端口使其与 impyla 一起工作。

错误:

.jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], 中的错误: java.lang.NoClassDefFoundError: org/apache/thrift/TException

据我了解,我没有正确的.jars?

备注:

我不能在机器上安装 hive-jdbc,因为我不是 root。我可以没有它,因为我已经放置了 hive-jdbc-1.1.0-cdh5.16.99.jar 在文件夹中?

另外,Kerberos 会触发这个错误吗?

【问题讨论】:

    标签: hive rjava rjdbc cdsw


    【解决方案1】:

    我需要下载独立版本的 hive 驱动程序。

    hive-jdbc-3.1.2-standalone.jar,单机版不需要完整安装hive客户端。

    【讨论】:

      猜你喜欢
      • 2022-09-30
      • 2016-11-01
      • 2021-01-21
      • 2019-02-16
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      相关资源
      最近更新 更多