我连接到基于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数据库吗?任何信息都有帮助。