2012-12-13 50 views
2

我在Windows PC上安裝了R 2.15.2。 Hadoop &蜂巢在另一臺PC上。 我加載RHive和它的依賴關係到R. 現在我試圖連接到Hive。R使用RHive包進行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) 

蜂巢主目錄:/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 /庫/ RHive/JAVA/rhive_udf.jar /home/hadoop/hive-0.7.0- cdh3u0/conf

> rhive.init() 

[1]「有HADOOP沒有從站文件。所以你應該在調用rhive.connect()時傳遞主機參數。「
錯誤.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.ClassNotFoundExc主器件接收

結果是錯誤的連接!

甚至試圖 rhive.connect(host = "212.63.135.149", port = 10000, hdfsurl="hdfs://212.63.135.149:9000/"),但沒有用。

回答

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

可能是因爲您使用了錯誤的Hadoop版本。

RHive不能使用YARN,然後使用hadoop-0.20.205.0或更早版本。

1

我用固定rhive_udf修復了它。罐子類路徑(在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 /庫/ RHive/JAVA/rhive_udf.jar'列表中!

然後重新啓動R - 在這裏你走!