使用 RHive 包的 R 到 Hive 连接

标签 r hive

我在 Windows PC 上安装了 R 2.15.2。 Hadoop 和 Hive 在另一台 PC 上。 我将 RHive 及其依赖项加载到 R 中。 现在我正在尝试连接到 Hive。

> Sys.setenv(HIVE_HOME="/home/hadoop/hive-0.7.0-cdh3u0")
> Sys.setenv(HADOOP_HOME="/home/hadoop/hadoop-0.20.2-cdh3u0")
> library(RHive)
> rhive.env(ALL=TRUE)

Hive Home Directory : /home/hadoop/hive-0.7.0-cdh3u0
Hadoop Home Directory : /home/hadoop/hive-0.7.0-cdh3u0
Hadoop Conf Directory :
No RServe
Disconnected HiveServer and HDFS
RHive Library List
C:/Program Files/R/R-2.15.2/library/RHive/java/rhive_udf.jar /home/hadoop/hive-0.7.0-cdh3u0/conf

> rhive.init()

[1] "there is no slaves file of HADOOP. so you should pass hosts argument when you call rhive.connect()."
Error in .jnew("org/apache/hadoop/conf/Configuration") : java.lang.ClassNotFoundException
In addition: Warning message:
In file(file, "rt") : cannot open file '/home/hadoop/hadoop-0.20.2-cdh3u0/conf/slaves': No such file or directory

> rhive.connect(hdfsurl="hdfs://212.63.135.149:9000/")

Error in .jnew("org/apache/hadoop/conf/Configuration") : java.lang.ClassNotFoundException

结果连接错误!

甚至尝试过 rhive.connect(host = "212.63.135.149", port = 10000, hdfsurl="hdfs://212.63.135.149:9000/") ,但没有用。

最佳答案

几周前我在安装 RHive 时遇到了同样的问题。这是因为有些jar文件不在rhive.init中设置的类路径中。 您需要设置参数 hive、libs、hadoop_home、hadoop_conf、hlibs 来指示这些 jar 文件所在的位置。

我首先从源代码安装,它与 rhive.init 一起工作,但 rhive.connect 无法正常工作。当我通过 Cloudera 管理器安装 Hive 时,它​​确实很有魅力 https://ccp.cloudera.com/display/CDH4DOC/Hive+Installation 。因此,我建议您按照那里的说明进行操作,它有详细记录。

关于使用 RHive 包的 R 到 Hive 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13856185/

相关文章:

sql - 使用 like 运算符检查配置单元中的模式

database - 大数据查询的 Hive 替代方案

r - R 中的上限函数不准确(有时)

R 计算逗号和字符串的数量

hadoop - 我们如何在 Hadoop 中导入视频或音频或图像,并可以做进一步的分析。

sql - 将数据插入分桶 Hive 表

hadoop - 将Sqoop连接到mysql

r - 如何在 foreach( ... , .packages ="pkg") %dopar% 中指定 R 包的位置

r - 精确日期的左连接值,如果缺失则查找前一个值

r - IBrokers:使用 R 排队订单