1
我是R用戶。我對Linux命令PuTTY或Hadoop/Hive瞭解甚少。所以請糾正我,如果我錯了。在安裝了Hadoop的羣集上使用R
我現在正在與一個團隊合作。他們在集羣上運行Ubuntu系統。我可以用膩子訪問此Ubuntu系統,並通過使用代碼訪問數據文件:
user$hadoop fs -ls /datafolder/
或使用蜂巢:
user$hive
hive>use datafolder;
hive>show tables;
在對面,那我一起工作的團隊非常瞭解一點關於R,所以他們要我做R部分。我已經在羣集上安裝了R,並且還在R中安裝了rJava HRive和其他軟件包(我不確定是否正確執行了此操作,但R似乎運行正常)。
現在我可以做一些測試。我R 7羣集上運行下面的代碼:
user$R
>install.packages(c('Rcpp', 'RJSONIO', 'bitops', 'digest', 'functional', 'stringr', 'plyr', 'reshape2','caTools'))
>Sys.setenv(HADOOP_CMD="/opt/cloudera/bin/hadoop")
>Sys.setenv(HADOOP_HOME="/opt/cloudera/lib/hadoop")
>Sys.setenv(HADOOP_STREAMING="/opt/cloudera/lib/hadoop-mapreduce/hadoop-streaming.jar")
>library(rmr2)
>library(rhdfs)
>hdfs.init()
測試:
>ints = to.dfs(1:10)
>calc = mapreduce(input = ints, map = function(k,v) cbind(v, v/2, 2*v))
>test <- from.dfs(calc)
>test
我可以成功加載 「測試」 回用from.dfs。這似乎是我能救一個虛擬數據集的Hadoop,並可以把它從Hadoop的背成功(正確嗎?)
現在,我的問題是,如何令R導入這些,我可以從
user$hadoop fs -ls /datafolder/
看到的數據集
或
>hive use datafolder;