SparkR是AMPLab发布的一个R开发包,为Apache Spark提供了轻量的前端。SparkR提供了Spark中弹性分布式数据集(RDD)的API,用户可以在集群上通过R shell交互性的运行job。例如,我们可以在HDFS上读取或写入文件,也可以使用 lapply 来定义对应每一个RDD元素的运算。
除了常见的RDD函数式算子reduce、reduceByKey、groupByKey和collect之外,SparkR也支持利用 lapplyWithPartition 对每个RDD的分区进行操作。 SparkR也支持常见的闭包(closure)功能:用户定义的函数中所引用到的变量会自动被发送到集群中其他的机器上。参见一下例子中用户闭包中引用的 initialWeights 会被自动发送到集群其他机器上。
用户还可以很容易的在已经安装了R开发包的集群上使用SparkR。includePackage 命令用于指示在每个集群上执行操作前读取开发包。以下是个例子:
下面介绍如何安装SparkR 第一步,安装R 参考http://www.myexception.cn/linux-unix/680876.html 由于安装R依赖比较多,故利用iso文件创建本地yum源,见后【一】利用iso镜像文件创建本地yum源 1.1 安装依赖
1.2 下载源码,编译安装R 下载http://mirror.bjtu.edu.cn/cran/src/base/R-3/R-3.1.1.tar.gz
第二步,安装rjava 参考 http://www.geedoo.info/page/3 在联网的情况下,可以进入R命令,安装rJava包:
如果待安装机器不能上网,可以将源文件下载到本地,然后通过shell命令R CMD INSTALL ‘package_name’来安装:
下载 rJava_0.9-6.tar.gz http://cran.r-project.org/web/packages/rJava/
第三步,安装sbt 下载 http://www.scala-sbt.org/download.html 参考http://www.scala-sbt.org/0.13/tutorial/Manual-Installation.html 进行安装
由于无法连接外网,所以没有安装成功。 第四步,安装 SparkR 下载 SparkR (http://amplab-extras.github.io/SparkR-pkg/)
由于连不上网,不能直接编译sparkR,故在能联网的机器上对SparkR进行编译,之后再上传使用sbt编译后的包。上传编译后的包之后,使用以下命令进行安装:
修改R权限,使所有人都可读
执行示例:
修改PATH和CLASSPATH,方便之后使用:
修改sparkR.profile的权限,因为该文件需要所有用户都可读写。
【一】利用iso镜像文件创建本地yum源 1. 创建iso存放目录和挂载目录
2. 将iso镜像文件上传到/app/iso文件夹下 3. 将/app/iso/下的iso文件挂载到/mnt/cdrom目录
注:挂载完之后对其操作会提示设备繁忙,此时需要umount解开挂载才行 查看是否挂载成功: df -h <用来查看系统中所有挂载的,mount也可以 4.<最关键的一步>如果/etc/yum.repos/下面有其它的*.repo文件,先创建个文件夹,将这些*.repo先转移到文件夹中,自己写一个.repo的文件
然后创建自己的.repo文件 vi myself.repo 内容如下:
5. 测试:
|