R语言中的并行计算——搭建R的集群

转载:http://blog.sina.com.cn/s/blog_83bb57b70101qeys.html

一直纠结于R的大数据计算问题,希望可以找到一个彻底的方案解决它。而云服务器当然是解决这个问题的最佳方案,所以,至少从这方面入手。

R的云服务器部署有两种解决方案,一种是使用R语言的并行计算,另外一种是使用RHadoop框架。

RHadoop框架其实就是M / R 算法的R语言实现,需要使用者有M / R的计算基础,和R语言平常使用的计算方式有很大的不同,因此,我采用的解决方案是搭建R 的并行计算集群。

如果对R语言的并行计算不了解的同学,可以参考原博主发布的这篇文章——《R语言中的并行运算》

在两台IP地址不同的Linux机器上面安装好R,然后每台机器都安装snow包,最后注意一点是,需要配置ssh的免密码登录,不同的linux用户需要配置自己的免密码登录,并且,需要用到R集群的用户都需要使用自己的账户安装snow包。

以下是测试代码:

library(snow);

workerList <- list(

list(host = "192.168.1.100", port = 10187, outfile = "~/log1.log", rshcmd = "ssh -p 22222"),

list(host = "192.168.1.101", port = 10187, outfile = "~/log2.log", rshcmd = "ssh -p 22222"),

list(host = "192.168.1.101", port = 10187, outfile = "~/log3.log", rshcmd = "ssh -p 22222")

);

cl <- makeCluster(workerList, type="SOCK", master="192.168.1.100")

stopCluster(cl);

代码解释:

1、配置每台服务器的属性

list(host = "192.168.1.100", port = 10187, outfile = "~/log1.log", rshcmd = "ssh -p 22222")

服务器的配置选项如下:

 名称 类型  描述  默认值 
 port  integer  R使用的集群的端口 10187 
 timeout  integer  服务器之间链接超时时间 31536000(一年) 
 master  string 集群主机IP(或者域名) Sys.info()["nodename"] 
 type  string  服务器之间连接类型 NULL 
 outfile  string 日记输出的文件路径  NULL 
 user  string  服务器用户名  Sys.info()["user"]
 rshcmd  string  SSH执行命令  ssh
 rlibs  string 服务器上R的安装路径   $R_LIBS
 scriptdir  string  snow安装包的安装路径  
 rprog  string R程序的执行路径   $R_HOME/bin/R
 snowlib  string snow安装包的路径   
 rscript  string  R脚本所在路径  $R_HOME/bin/Rscript
       

以上为R集群中的各个服务器的常用配置参数列表。

2、根据配置,创建R语言并行计算集群,master指明主节点,这个在我实践的过程中是必须配置的。

cl <- makeCluster(workerList, type="SOCK", master="192.168.180.216")

3、运算结束后,关闭集群机器

stopCluster(cl);

时间: 2024-12-28 23:44:32

R语言中的并行计算——搭建R的集群的相关文章

R语言中批量安装软件包

R是一种开源软件,在编程的时候,需要安装很多软件包,如果一个一个的安装,那将费时费力.由于R支持脚本语言,所以考虑用.R文件存放所有要用的软件包,比如MASS.lpSolve.arules等,然后运行这个.R文件,就可以进行批量安装了. 1. 首先,将R语言中的软件包,按照它们的依存关系,保存在一个.R文件中,比如lib2D.R //lib2D.R install.packages("MASS") install.packages("lpSolve") instal

R语言中如何使用最小二乘法

这里只是介绍下R语言中如何使用最小二乘法解决一次函数的线性回归问题. 代码如下:(数据同上一篇博客)(是不是很简单????) > x<-c(6.19,2.51,7.29,7.01,5.7,2.66,3.98,2.5,9.1,4.2) > y<-c(5.25,2.83,6.41,6.71,5.1,4.23,5.05,1.98,10.5,6.3) > lsfit(x,y) 结果如下: $coefficients Intercept         X  0.8310557 0.9

R语言中最简单的向量赋值方法

R语言中最简单的向量赋值方法简介: 1. 生成等差数列的向量x x <- 1:10 #将x向量赋值为1 2 3 4 5 6 7 8 9 10 结果为 > x [1] 1 2 3 4 5 6 7 8 9 10 2. 将x的值全部修改成0 x[] <- 0 #非常简洁的赋值方法,建议使用 x[1:length(x)] <- 0 #不建议使用的赋值方法 结果为: > x[] <- 0 > x [1] 0 0 0 0 0 0 0 0 0 0 3.使用seq函数 x <

机器学习:R语言中如何使用最小二乘法

详细内容见上一篇文章:http://www.cnblogs.com/lc1217/p/6514734.html 这里只是介绍下R语言中如何使用最小二乘法解决一次函数的线性回归问题. 代码如下:(数据同上一篇博客)(是不是很简单????) > x<-c(6.19,2.51,7.29,7.01,5.7,2.66,3.98,2.5,9.1,4.2) > y<-c(5.25,2.83,6.41,6.71,5.1,4.23,5.05,1.98,10.5,6.3) > lsfit(x,y

R语言中的四类统计分布函数

R语言中提供了四类有关统计分布的函数(密度函数,累计分布函数,分位函数,随机数函数).分别在代表该分布的R函数前加上相应前缀获得(d,p,q,r).如: 1)正态分布的函数是norm,命令dnorm(0)就可以获得正态分布的密度函数在0处的值(0.3989)(默认为标准正态分布). 2)同理,pnorm(0)是0.5就是正态分布的累计密度函数在0处的值. 3)而qnorm(0.5)则得到的是0,即标准正态分布在0.5处的分位数是0(在来个比较常用的:qnorm(0.975)就是那个估计中经常用到

【译文】怎样在R语言中使用SQL命令

[译文]怎样在R语言中使用SQL命令 作者 Fisseha Berhane 对于有SQL背景的R语言学习者而言.sqldf是一个很实用的包,由于它使我们能在R中使用SQL命令.仅仅要掌握了主要的SQL技术.我们就能利用它们在R中操作数据框.关于sqldf包的很多其它信息,能够參看cran. 在这篇文章中,我们将展示怎样在R中利用SQL命令来连接.检索.排序和筛选数据. 我们也将展示怎么利用R语言的函数来实现这些功能.近期我在处理一些FDA(译者注:食品及药物管理局)的不良事件数据.这些数据很混乱

R语言中数据结构

R语言还是有点古老感觉,数据结构没有Python中那么好用,下面简单总结一下R语言中常用的几个数据结构. 向量: R中的向量可以理解为一维的数组,每个元素的mode必须相同,可以用c(x:y)进行创建,如x <- c(1:9). 矩阵: R中的矩阵可以理解为二维数组,每一个元素必须要有相同的mode,使用matrix进行创建,matrix的形式为: matrix(vector, nrow=number_of_rows, ncol=number_of_columns, byrow=logical_

R语言中动态安装库

R语言中动态安装库 在一个R脚本中,我们使用了某些library,但是发现运行环境中没有这个library,如果能检测一下有没有这个包,没有就自动安装该多好.而R中非常方便地支持这些,只要联网. 代码如下: site<-"http://cran.r-project.org" if (!require("ggplot2")) { install.package("ggplot2", repos=site) }

R语言入门1:安装R和RStudio

R语言入门1:安装R和RStudio 曹务强 中科院遗传学博士研究生 9 人赞同了该文章 1. Windows安装R 在Windows系统上,安装R语言比较简单,直接从R的官方网站下载,按照正常的软件安装流程点下一步即可. 2. Windows安装RStudio R语言自带的工作窗口界面非常不美观,用起来也非常不方便.于是有人发明了RStudio: RStudio是R语言的一种集成开发环境,它是免费自由软件.RStudio同时有桌面版和服务器版.RStudio基于C++开发,它的图形用户界面基于