使用RHive软件包的R到Hive连接

使用RHive软件包的R到Hive连接,r,hive,R,Hive,我在Windows PC上安装了R2.15.2。 Hadoop和Hive在另一台PC上。 我将RHive及其依赖项加载到R中。 现在我正在尝试连接到蜂巢 > 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) 配置

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

> 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)
配置单元主目录:/Home/hadoop/Hive-0.7.0-cdh3u0
Hadoop主目录:/Home/Hadoop/hive-0.7.0-cdh3u0
Hadoop配置目录:
无服务
已断开HiveServer和HDFS的连接
RHive库列表
C:/Program Files/R/R-2.15.2/library/RHive/java/RHive_udf.jar/home/hadoop/hive-0.7.0-cdh3u0/conf

[1] “没有HADOOP的从属文件。因此,在调用rhive.connect()时,应该传递hosts参数。”
.jnew(“org/apache/hadoop/conf/Configuration”)中出错: java.lang.ClassNotFoundException
此外:警告消息:
在文件中(文件“rt”): 无法打开文件“/home/hadoop/hadoop-0.20.2-cdh3u0/conf/slaves”:没有这样的文件或目录

.jnew(“org/apache/hadoop/conf/Configuration”)中出错: java.lang.ClassNotFoundException

结果是连接错误

甚至试过
rhive.connect(host=“212.63.135.149”,端口=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时,它确实很有魅力。因此,我建议您按照那里的说明进行操作,它有很好的文档记录。

可能是因为您使用了错误的Hadoop版本


RHive不适用于Thread,然后使用hadoop-0.20.205.0或更早版本。

我通过修复RHive_udf.jar类路径(在RHive源目录中找到,构建后)修复了它

然后使用以下命令测试新添加的类路径:

> .jclassPath()
您应该在列表中看到“/usr/lib64/R/library/RHive/java/RHive_udf.jar”

然后重新启动R-给你

> rhive.connect(hdfsurl="hdfs://212.63.135.149:9000/")
mkdir –p /usr/lib64/R/library/RHive/java
cp rhive_udf.jar //usr/lib64/R/library/RHive/java
chmod 755 /usr/lib64/R/library/RHive/java/rhive_udf.jar
R
> library("rJava")
> .jinit()
> .jaddClassPath("/usr/lib64/R/library/RHive/java/rhive_udf.jar")
> .jclassPath()