【问题标题】:Using JDBC Driver for Hive on Amazon EMR in R在 R 中在 Amazon EMR 上使用 Hive 的 JDBC 驱动程序
【发布时间】:2016-04-16 13:52:23
【问题描述】:

Amazon provides a JDBC Driver 用于连接到 Hive。有一个JDBC package for R 似乎应该能够利用这些驱动程序并允许访问 Hive。事实上,其他人显然已经能够访问Hive from R with JDBC

我没有这么幸运。我已经通过 SQL Workbench/J 成功使用了亚马逊驱动程序,遵循instructions provided by Amazon 从 Hive 提取一些数据。因此,我知道实际上 Amazon JDBC 驱动程序中包含的 .jar 足以连接到我的 EMR 集群上的 Hive (0.13.1) 版本,并且我也知道 SSH 隧道已正确设置。

似乎以下 R 代码应该足以连接到 EMR 集群上的 Hive(遵循与 SQL Workbench/J 类似的配置选项,并抄录“从 R 中使用 Hive 和 JDBC”博客文章中的一些注释):

if (!require("DBI")) {install.packages("DBI");library("DBI")}
if (!require("rJava")) {install.packages("rJava");library("rJava")}
if (!require("RJDBC")) {install.packages("RJDBC",dep=TRUE);library("RJDBC")}
JDBCLib <- "~/AmazonHiveJDBC/1.0.0.1000/"
for(l in list.files(JDBCLib)){ .jaddClassPath(paste(JDBCLib,l,sep=""))}
drv <- JDBC("com.amazon.hive.jdbc3.HS2Driver", paste0(JDBCLib,"HiveJDBC3.jar"))
conn <- dbConnect(drv, "jdbc:hive2://localhost:10000/default", user="hadoop")

JDBC 函数返回没有投诉的 drv 对象,其结构如下所示:

Formal class 'JDBCDriver' [package "RJDBC"] with 2 slots
  ..@ identifier.quote: chr NA
  ..@ jdrv            :Formal class 'jobjRef' [package "rJava"] with 2 slots
  .. .. ..@ jobj  :<externalptr> 
  .. .. ..@ jclass: chr "com/amazon/hive/jdbc3/HS2Driver"

不过,尽我所能,dbConnect 返回

Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1],  : 
  java.lang.NoClassDefFoundError: Could not initialize class com.amazon.hive.hive.core.Hive2JDBCDriver

我尝试在 URL 中指定用户、指定 dbname、根本不指定用户等,但我没有尝试过。我还尝试了一些 URL 的变体,如建议的here,例如“jdbc:hive2://localhost\default:10000;user=hadoop”,但没有任何成功。在这一点上,我似乎非常接近成功,但还没有达到目标。我犯了什么错误?我该如何纠正?

【问题讨论】:

    标签: r jdbc hive amazon-emr


    【解决方案1】:

    Another question 没有收到回复,在他们用来成功连接到 hive 的示例代码中包含了.jinit()。这是缺少的特殊酱汁。 .jinit() 启动 JVM,并且必须在将 jars 添加到类路径之前调用。

    【讨论】:

      猜你喜欢
      • 2015-12-21
      • 2020-05-22
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多