Spark in action Spark 以及SparkR的安装配置说明
Spark以及SparkR的安装(standalone模式)
From :ssdutsu @ Inspur Company
suzhiyuan2006@gmail.com
操作系统 CentOS 7
Java 版本 JDK 1.7
Spark安装过程请见PDF文件 Spark 1.0的安装配置文件
网址:http://www.it165.net/admin/html/201407/3379.html
(别忘了配置免密码登陆和关闭防火墙)
下面重点描述如何在linux环境下安装R,Rstudio 以及SparkR
1 Linux下安装R(Slave 机器上也要安装R)
1.1、下载
首先去官网下载R的软件包,官网网址为
http://cran.rstudio.com/
1.2、解压:
tar -zxvf R-3.1.2.tar.gz (目前最新版的R为3.1.2,建议用最新版,否则某些可用的包不支持就麻烦大了)
cd R-3.1.2
1.3、安装
yum install readline-devel
yum install libXt-devel
(上面两个安装我也不知道干啥的,但是如果不先运行这两行,有可能后续安装报错,不安装你会后悔的)
然后运行./configure --enable-R-shlib --prefix=/home/ssdutsu/R-3.1.2(这里注意要改成自己的R所在的路径)
(如果使用rJava需要加上 --enable-R-shlib
./configure --enable-R-shlib --prefix=/usr/R-3.1.2(!!由于SparkR是需要rJava的,所以建议后面这些乱七八糟的参数最好加上))
然后运行
make
make install
1.4、配置环境变量
vi .bash_profile
PATH=/usr/R-3.1.2/bin(同样注意这里的路径)
(这里别source)
1.5、测试:创建脚本(t.R)
cd /opt/script/R
vim t.R
#!/path/to/Rscript #第一行
x<-c(1,2,3) #R语言代码
y<-c(102,299,301)
model<-lm(y~x)
summary(model)
1.6、测试:执行脚本
R CMD BATCH --args /opt/script/R/t.R
more /opt/script/R/t.Rout #查看执行的结果
或者第二种方式
Rscript /opt/script/R/test.R #结果直接输出到终端
2 Linux安装Rstudio
Rstudio有两个版本,一个是desktop版本,主要用于个人单机开发,还有一个server版,可以从浏览器中访问Rstudio,适用于多人协作开发。(Ps:Rstudio是开发R最强大的IDE,没有之一, sever版本只能在linux上安装)
安装Rstudio的过程很简单,去官网下载rpm包,然后rpm他就行了。(别问我rpm是什么,我也不知道, (linux高手表示不屑于问))
官网地址:
Server版:http://www.rstudio.com/products/RStudio/#Server
Desktop 版:http://www.rstudio.com/products/RStudio/#Desk
(左边是免费的,右边是收费版本,土豪请无视免费,下载个收费的让我们看看也好)
安装完成之后,Rstudio会自动匹配系统中的R环境,并且加载相应位置的R包,在R shell中运行 .libPaths()可查看相应的R包都装在什么地方。
Rstudio-server 的默认安装路径是 /usr/lib/rstudio-server
如果要启动rstudio server服务器,运行相应bin目录下的 ./rstudio-server start 就可以了, 然后打开浏览器,输入本机IP地址:8787 (192.168.67.130:8787) 就可以访问了,默认端口是8787(真霸气)。
PS:,Rstudio使用linux系统本身的用户名密码进行登陆,同时不允许root用户登陆。(这个就导致了一个很扯淡的问题:你无法在rstudio中进行R包的部分管理操作,比如删除SparkR包,删除rJava包等)
3 Linux 安装SparkR
(这时候系统的R以及Rstudio已经安装完毕,并且我假设OpenJDK的版本大于7.0)
3.1 首先要配置R的java环境
在linux终端中输入命令: R CMD javareconf
然后安装rJava
在linux终端中 输入 R 即可进入R shell
运行install.packages(“rJava”)
(注意)这行代码运行完成之后,会提示你选择一个镜像地址下载rJava文件,别选中科大(Hefei)的镜像,貌似没有rJava这个东西,选择Beijing的。
下面是两种方法安装SparkR
3.2 安装SparkR
3.2.1 通过R shell 安装(建议不要这么干)
虽然这个方法可以安装,但是你的spark的版本必须是1.1.0,否则还是算了,(博主的spark1.2.0 然后用了这个方法,一把辛酸泪啊)。
安装devtools包
Devtools里面有个install-github 函数,可以方便地在Rshell中安装SparkR
在Rshell 中加载 devtools
library(devtools)
install-github("","") 资料很多,实在是懒得上传图片。
这行install-github 的命令,运行起来可能会比较慢 (取决于网速和人品,不幸的是, 楼主RP和网速都没有给力,多试几次,总会好的)
安装完SparkR之后,可以用wordcount来检验安装正确与否。
步骤1:在R shell中加载SparkR
步骤2:初始化SparkContext及执行wordcount
sc <- sparkR.init(master="local", "RwordCount")
lines <- textFile(sc, "README.md")
words <- flatMap(lines,
function(line) {
strsplit(line, " ")[[1]]
})
wordCount <- lapply(words, function(word) { list(word, 1L) })
counts <- reduceByKey(wordCount, "+", 2L)
- output <- collect(counts)
for (wordcount in output) {
cat(wordcount[[1]], ": ", wordcount[[2]], "\n")
}
如果想将SparkR运行于集群环境中,只需要将master=local,换成spark集群的监听地址即可(sparkR.init(“spark://192.168.
1.137:7077”))
方法1的好处是,sparkR自动安装到其他的R包所在的目录下,不用在.libPaths()重新增加新的路径,缺点是靠网速和人品。
3.2.2 通过源代码进行编译
从网页下载代码https://github.com/amplab-extras/SparkR-pkg sparkR的代码编译
下载zip或者tgz文件之后,解压缩,然后cd 进入解压缩之后的文件包,里面有这些东西在 (有个examples 可以用一下)
然后 [root@master sparkR]# SPARK_VERSION=1.2.0 HADOOP_VERSION=2.4.0 ./install-dev.sh ./install-dev.sh (前面红色取决于你的SparkVersion和Hadoop Version,博主就是因为没有指定version,被搞了好几天)
另外还需要在spark的conf目录下面修改 spark-defaults-conf这个文件 加一行 spark.master spark://Master的ip: Master的端口
就可以直接搞定了,运行完成之后,会在同一个目录下面生成一个lib文件夹,lib文件夹里面就是SparkR文件夹,这个文件夹就是R语言能认识的“SparkR包”。
然后,在终端中运行 ./sparkR这个可执行文件,就会自动进入R 的shell,同时自动加载SparkR包。
运行例子程序(仅限方法2):
local表示是在本地运行,[2]表示启动了两个线程。
如果想将SparkR运行于集群环境中,只需要将master=local,换成spark集群的监听地址即可(sparkR.init(“spark://192.168.
1.137:7077”))
注意了(注意真多),worker也就是 slave上面也必须安装SparkR才行。
关于方法2的优点是不依靠人品,缺点是如果通过 R 来启动 Rshell的话,不配置一下.libPaths() R无法找到sparkR在哪,配置过程如下:
代码都在 R shell中运行
lib_path<- .libPaths()
lib_path<-c(lib_path,”你的sparkR的路径一直到3.2下方图的lib 目录”)
.libPaths(Lib_path)
rm(lib_path)
这样就可以了,如果rstudio也找不到,在rstudio的界面命令行里,运行一次同样的代码。
(上面这行代码貌似是临时性的,重启机器后libpath又没了,永久性解决方法: 打开/XX/.bashrc 文件(XX是用户名,千万别搞错了bashrc的位置啊,血的教训),然后 添加一行:export R_LIBS=/home/ssdutsu/R/SparkR-pkg-master/lib) 别忘了source,这样得到的默认路径改成SparkR的路径了,不过Rstudio安装包时可以自由选择,已经无伤大雅了。
最后一点:(困扰了我好久)
通过Rshell运行sparkR的示例程序,是没有问题的。但是我使用Rstudio-server版本运行上面的sparkR示例程序时,总是报 can not find Rscript 的错误,上网搜了一下,也有很多人在问,但是没有解决方法。我换成了Rstudio的desktop版,就正常运行了。 估计是Rstudio server和Rscript的链接问题导致的。
Spark in action Spark 以及SparkR的安装配置说明的更多相关文章
- Apache Spark技术实战之5 -- SparkR的安装及使用
欢迎转载,转载请注明出处,徽沪一郎. 概要 根据论坛上的信息,在Sparkrelease计划中,在Spark 1.3中有将SparkR纳入到发行版的可能.本文就提前展示一下如何安装及使用SparkR. ...
- 大数据学习day18----第三阶段spark01--------0.前言(分布式运算框架的核心思想,MR与Spark的比较,spark可以怎么运行,spark提交到spark集群的方式)1. spark(standalone模式)的安装 2. Spark各个角色的功能 3.SparkShell的使用,spark编程入门(wordcount案例)
0.前言 0.1 分布式运算框架的核心思想(此处以MR运行在yarn上为例) 提交job时,resourcemanager(图中写成了master)会根据数据的量以及工作的复杂度,解析工作量,从而 ...
- 【Spark】---- 在Linux集群上安装和配置Spark
1 安装JDK 1) 进入JDK官网 2) 下载JDK安装包 3)配置环境变量,在/etc/profile增加以下代码 JAVA_HOME=/home/hadoop/jdk1.6.0_38 PAT ...
- Spark学习之Spark安装
Spark安装 spark运行环境 spark是Scala写的,运行在jvm上,运行环境为java7+ 如果使用Python的API ,需要使用Python2.6+或者Python3.4+ Spark ...
- Spark 3.x Spark Core详解 & 性能优化
Spark Core 1. 概述 Spark 是一种基于内存的快速.通用.可扩展的大数据分析计算引擎 1.1 Hadoop vs Spark 上面流程对应Hadoop的处理流程,下面对应着Spark的 ...
- Spark快速入门 - Spark 1.6.0
Spark快速入门 - Spark 1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 快速入门(Quick Start) 本文简单介绍了Spark的使用方式.首 ...
- 【译】Spark官方文档——Spark Configuration(Spark配置)
注重版权,尊重他人劳动 转帖注明原文地址:http://www.cnblogs.com/vincent-hv/p/3316502.html Spark主要提供三种位置配置系统: 环境变量:用来启动 ...
- 一、spark入门之spark shell:wordcount
1.安装完spark,进入spark中bin目录: bin/spark-shell scala> val textFile = sc.textFile("/Users/admin/ ...
- Spark编译及spark开发环境搭建
最近需要将生产环境的spark1.3版本升级到spark1.6(尽管spark2.0已经发布一段时间了,稳定可靠起见,还是选择了spark1.6),同时需要基于spark开发一些中间件,因此需要搭建一 ...
随机推荐
- 【JZOJ4783】【NOIP2016提高A组模拟9.15】Osu
题目描述 输入 输出 样例输入 4 2 1 2 2 2 0 2 3 0 0 4 2 0 样例输出 1 2 1 数据范围 样例解释 圆圈只在出现的时刻有效.即:时刻t_i时鼠标位置恰好在(x_i,y_i ...
- Directx11教程(16) D3D11管线(5)
原文:Directx11教程(16) D3D11管线(5) 本章我们学习VS中具体做些什么事情? 首先再看看我们的VS shader代码: Clolor.vs - PixelInputType Col ...
- More Effective C++: 05技术(29)
29:引用计数 本章首先实现一个带引用计数String,然后逐步优化,介绍引用计数的常规实现. 实现引用计数的String,首先需要考虑:引用计数在哪存储.这个地方不能在String对象内部,因为需要 ...
- shell学习(22)- comm
1.预备知识 comm命令可用于比较两个已排序的文件.它可以显示出第一个文件和第二个文件所独有的行以及这两个文件所共有的行.该命令有一些选项可以禁止显示指定的列,以便于执行交集和求差操作. 交集(in ...
- poj 2229 【完全背包dp】【递推dp】
poj 2229 Sumsets Time Limit: 2000MS Memory Limit: 200000K Total Submissions: 21281 Accepted: 828 ...
- activemq入门demo
创建maven工程,pom文件如下 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht ...
- linux下安装使用MySQL 以及 python mysqldb 遇到的问题
一.安装mysql sudo apt-get install mysql-client-core-5.5 然后会出现: ERROR 2002 (HY000): Can't connect to loc ...
- mybatis分页插件pageHelper简单实用
工作的框架spring springmvc mybatis3 首先使用分页插件必须先引入maven依赖,在pom.xml中添加如下 <!-- 分页助手 --> <dependency ...
- 使用 EnumWindows 找到满足你要求的窗口 - walterlv
原文:使用 EnumWindows 找到满足你要求的窗口 - walterlv 使用 EnumWindows 找到满足你要求的窗口 2019-04-30 13:11 在 Windows 应用开发中,如 ...
- 关于使用JavaMail发送邮件抛出java.lang.NoSuchMethodError: com.sun.mail.util.TraceInputStream.<init>(Ljava异常的解决方法
我们在使用JavaMail时有可能会如下异常: Exception in thread "main" java.lang.NoSuchMethodError: com.sun.ma ...