我遵循多重教程,试图用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/.jcall;”,“Connection”,as.character(url)1,:java.lang.NoClassDefFoundError: org/apache/thrift/TException )
据我所知,我没有正确的.jar?
备注:
我不能在机器上安装hive,因为我不是root用户。我可以不使用它,因为我已经将hive-jdbc-1.1.0-cdh5.16.99.jar放在一个文件夹中了?
而且,Kerberos会触发这个错误吗?
发布于 2020-02-03 13:01:03
我需要下载独立版本的蜂箱驱动程序。
hive-jdbc-3.1.2-standalone.jar,独立版本不需要完全安装hive客户端。
https://stackoverflow.com/questions/60037918
复制相似问题