我在 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/