环境配置——
- 操作系统: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=
export SPARK_VERSION=1.1.
export SPARK_YARN_VERSION=2.5.-cdh5.3.0
export SPARK_HADOOP_VERSION=2.5.-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, " ")[[]]
})
wordCount <- lapply(words, function(word) {
list(word, 1L)
})
counts <- reduceByKey(wordCount, "+", 2L)
output <- collect(counts)
for (count in output) {
cat(count[[]], ": ", count[[]], "\n")
}
参考资料: