2016-09-23 31 views
1

连接到Hive2这里就是我所做的:R:问题通过RJDBC

步骤之一,得到了最新的一组来自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([email protected], "Ljava/sql/Connection;", "connect", as.character(url)[1], : 
    java.sql.SQLException: [Cloudera][HiveJDBCDriver](500151) Error setting/closing session: Open Session Error. 

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

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

可能存在的问题: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. 

错误不会通过后续尝试连接存在。

更新:

显然连接/认证工作得很好,但不知何故,司机也自动传递这应该测试蜂巢为了解各种SQL命令的能力奇怪的命令“set -v”。这是进程终止的地方,有一个例外。

回答