我按照multiples教程尝试用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
是正确的,因为我已经使它与 impyla
在python中使用相同的主机名/端口。
错误:
.jcall出错(drv@jdrv,“ljava/sql/connection;”,“connect”,as.character(url)[1],:java.lang.noclassdeffounderror:org/apache/thrift/texception
据我所知,我没有正确的答案 .jar
什么?
备注:
我不能在机器上安装hivejdbc,因为我不是root用户。既然我有这个地方,我可以不用它吗 hive-jdbc-1.1.0-cdh5.16.99.jar
在文件夹中?
另外,kerberos是否会触发此错误?
1条答案
按热度按时间ghhaqwfi1#
我需要下载独立版本的hive驱动程序。
hive-jdbc-3.1.2-standalone.jar
,独立版本不需要完整安装配置单元客户端。