将R连接到远程服务器上的Hive

时间:2017-05-24 22:45:54

标签: java r hadoop hive

我正在尝试将RStudio连接到我在远程服务器上通过Hue访问的Hive中的数据。

这是我目前的代码:

 options( java.parameters = "-Xmx20g" )
 library("DBI")
 Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre1.8.0_131')
 library("rJava")
 library("RJDBC")
 drv <- JDBC("org.apache.hadoop.hive.jdbc.HiveDriver",
            c(list.files("C:/Users/xxx/Desktop",pattern="jar$",full.names=T),
              list.files("C:/Users/xxx/Desktop",pattern="jar$",full.names=T)))

我将Hive JAR文件下载到我的桌​​面,xxx是正确的文件路径。到目前为止,一切都在RStudio中运行良好。

但是,当我运行以下行时:

 conn <- dbConnect(drv, "jdbc:hive2://IP ADDRESS", "usrnm", "password")

其中IP地址,用户名和密码都正确,我遇到以下错误:

 Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1],  : java.lang.NoClassDefFoundError: org/apache/thrift/TBase

非常感谢任何帮助。非常感谢。

1 个答案:

答案 0 :(得分:1)

我猜你没有丢失的罐子/库。

因此无法找到TBase类。

添加hive-exec-x.x.x.jar并查看它是否适合你。

检查此链接 http://snacktrace.com/artifacts/org.apache.hive/hive-exec/1.1.1/org.apache.thrift.TBase

希望它有所帮助!!