我在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/hadoop/hive-0.7.0-cdh3u0
Hadoop主页目录:/home/hadoop/hive-0.7.0-cdh3u0
Hadoop Conf目录:
没有RServe
断开连接的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
> rhive.init()
[1]“没有HADOOP的slaves文件。所以你应该在调用rhive.connect()时传递hosts参数。”
.jnew错误(“org / apache / hadoop / conf / Configuration”): 抛出java.lang.ClassNotFoundException
另外:警告信息:
在文件(文件,“rt”)中: 无法打开文件'/home/hadoop/hadoop-0.20.2-cdh3u0/conf/slaves':没有这样的文件或目录
> rhive.connect(hdfsurl="hdfs://212.63.135.149:9000/")
.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/")
,但没有用。
答案 0 :(得分:1)
几周前安装RHive时遇到了同样的问题。这是因为某些jar文件不在rhive.init中设置的类路径中。 您需要设置参数hive,libs,hadoop_home,hadoop_conf,hlibs,它们指示这些jar文件的位置。
我首先从源代码安装,使用rhive.init但rhive.connect无法正常工作。当我通过Cloudera经理https://ccp.cloudera.com/display/CDH4DOC/Hive+Installation安装Hive时,它确实像魅力一样。所以我建议你按照那里的说明进行操作,这是有据可查的。
答案 1 :(得分:1)
可能是因为您使用了错误的Hadoop版本。
RHive不能与YARN一起使用,然后使用hadoop-0.20.205.0或更早版本。
答案 2 :(得分:1)
我用修复rhive_udf.jar类路径修复它(在构建后在RHive源目录中找到)
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()
你应该看到' /usr/lib64/R/library/RHive/java/rhive_udf.jar'在列表中!
然后重启R - 然后你就去了!