.jfindClass中的错误(as.character(driverClass)[1]):找不到类 - Hive R

时间:2016-08-15 18:57:34

标签: r linux hadoop hive

我连接到基于x86_64-redhat-linux-gnu (64-bit)平台的远程R服务器。此服务器中安装的R版本为3.3.1。我想使用这个R服务器连接到远程hive数据库,以便我可以提取数据并对其进行一些分析。我正在尝试以下事项,

options( java.parameters = "-Xmx8g" )
library(rJava)
library(RJDBC)

drv <- JDBC("org.apache.hive.jdbc.HiveDriver",
            "/home/username/R/x86_64-redhat-linux-gnu-library/3.3/hive-jdbc-0.10.0.jar",
            identifier.quote="`")

我收到Error in .jfindClass(as.character(driverClass)[1]) : class not found错误。我下载了jar文件并将其保存在此路径/home/username/R/x86_64-redhat-linux-gnu-library/3.3/中。我只下载了这个jar文件。在这个/home/username/R/x86_64-redhat-linux-gnu-library/3.3/路径中,我有三个文件夹,如DBI,rJava和RJDBC以及文件hive-jdbc-0.10.0.jar。

除此之外,目前尚未下载任何其他内容。我还需要下载其他任何内容才能解决此错误吗?

我尝试的另一种尝试是,

hivedrv <- JDBC("org.apache.hadoop.hive.jdbc.HiveDriver",
                c(list.files("/home/username/R/x86_64-redhat-linux-gnu-library/3.3/",pattern="jar$",full.names=T),
                  list.files("/home/username/R/x86_64-redhat-linux-gnu-library/3.3/",pattern="jar$",full.names=T)))

运行没有任何错误。但是当我尝试以下命令时,

hivecon <- dbConnect(hivedrv, "jdbc:hive://hostname:portname/", "username", "password")

我收到以下错误,

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

不确定如何解决这个问题。有人可以帮我把R服务器连接到Hive数据库吗?任何信息都有帮助。

0 个答案:

没有答案