在CentOS上安装并运行SparkR

环境配置——

  • 操作系统:CentOS 6.5
  • JDK版本:1.7.0_67
  • Hadoop集群版本:CDH 5.3.0

安装过程——

1、安装R

yum install -y R

2、安装curl-devel(非常重要!否则无法进行RCurl包的安装,进而无法安装devtools)

yum install -y curl-devel

3、设置必要的环境变量(非常重要!这里必须设置成Hadoop环境对应的版本和Yarn对应的版本,否则用Spark与Hadoop HDFS数据通信会报Hadoop 连接器版本不匹配)

vi + /etc/profile

...
export USE_YARN=1
export SPARK_VERSION=1.1.0
export SPARK_YARN_VERSION=2.5.0-cdh5.3.0
export SPARK_HADOOP_VERSION=2.5.0-cdh5.3.0

4、进入R命令行,安装R包(最后一步安装SparkR时,需要安装很多依赖包,过程很漫长,可能需要重试多次才能成功)

install.packages("RCurl")
install.packages("devtools")
library(devtools)
install_github("amplab-extras/SparkR-pkg", subdir="pkg")

5、大功告成,安装完毕!现在用SparkR读取HDFS中的文件:

library(SparkR)
sc <- sparkR.init(master = "local", "RwordCount")
lines <- textFile(sc, "hdfs://quickstart.cloudera:8020/test/test.txt")
words <- flatMap(lines, function(line) {
    strsplit(line, " ")[[1]]
})
wordCount <- lapply(words, function(word) {
    list(word, 1L)
})
counts <- reduceByKey(wordCount, "+", 2L)
output <- collect(counts)
for (count in output) {
    cat(count[[1]], ": ", count[[2]], "\n")
}

参考资料: