一直纠结于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);
一直纠结于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);

[每日一答] [20151026] 搭建R的并行计算集群相关推荐

  1. 使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务

    使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务 一.基于于NAT的LVS的安装与配置. 1. 硬件需求和网络拓扑                       ...

  2. Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo

    随笔 - 70  文章 - 0  评论 - 88 Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo 近期为了分析国内航空旅游业常见安全漏洞,想到 ...

  3. Kubernetes 搭建 Kafka 和 Zookeeper 集群(完整教程)

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  4. Ubuntu18.04 安装搭建 hadoop-3.3.0 集群

    Ubuntu18.04 安装搭建 hadoop-3.3.0 集群 参考博文:https://blog.csdn.net/sunxiaoju/article/details/85222290?ops_r ...

  5. 『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现...

    『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现 1.基本设定和软件版本 主机名 ip 对应角色 mas ...

  6. 华为三台服务器虚拟化做集群怎样做,使用三台云服务器搭建真正的Redis集群

    三台云服务器搭建redis集群# 今天花了一天的时间弄集群redis:遇到了很多坑,从头开始吧 环境讲解: 两台配置:1核2G,另一台:1核1G: 操作系统:Centos 7.6 Redis:3.2. ...

  7. 收藏版!手把手教你搭建 Greenplum 6.1 集群

    了解更多Greenplum技术干货,欢迎访问Greenplum中文社区网站 随着Greenplum大数据平台正式进入6时代,Greenplum 新版本在功能和性能上都实现大幅度地提升.Greenplu ...

  8. Linux环境快速搭建elasticsearch6.5.4集群和Head插件

    今天来一起实战Linux环境下搭建elasticsearch6.5.4集群和Head插件: 环境信息 操作系统:Ubuntu 16.04.5 LTS JDK:1.8.0_191 elasticsear ...

  9. Docker搭建MongoRocks副本分片集群(Docker Mongodb Rocksdb Replication Sharding)

    Docker搭建MongoRocks副本分片集群 准备 依赖 安装 下载镜像 基本单实例 带配置的单实例 权限配置 docker参数解释 启动命令 rocksdb配置解释 查看启动日志 连接测试 ov ...

最新文章

  1. nginx搭建文件服务器脚本,nginx搭建web服务器,配置端口复用
  2. java中直角三角形第三条边,Java编程,根据输入三角形的三个边边长,程序能判断三角形类型为:等边、等腰、斜角、直角三角形,求代码...
  3. app获取个人信息是否合法_重拳出击!42款APP过度收集用户信息被点名
  4. iPhone 12 mini续航尿崩:玩游戏两小时就歇菜
  5. 条款5:了解C++默默编写并调用哪些函数(Know what functions C++ silently writes and calls)...
  6. Eclipse 工具栏不见了
  7. jquery中的ajax方法详解
  8. 甲骨文裁员后应该怎样发展后来的路?
  9. STM32单片机中定义结构体类型指针
  10. 华为云学院新春大礼包:场景化微认证上新了!
  11. linux 双显卡 黑屏 amd,彻底解决AMD显卡win10开机黑屏问题
  12. 力扣随机数randX——透过现象看本质之二元独立随机分布
  13. 手写Spring-第十六章-旋转吧雪月花!用三级缓存解决循环依赖
  14. MacOS英文版Google浏览器添加印象笔记剪藏插件
  15. 关于程序员秃顶和预防的小知识
  16. navicat连接远程服务器mysql报10060错误
  17. 计算机网络超级详细的总结(1)
  18. 预成大器,远离对日外包
  19. 【Scikit-Learn 中文文档】34 预处理数据 - 数据集转换 - 用户指南 | ApacheCN
  20. “秀才造反,十年不成”是什么意思? - 已解决 - 搜搜问问

热门文章

  1. 使用sed命令对文件中匹配到的行进行删除
  2. Java学习心得(转自张国宝)
  3. hash table html,javascript 哈希表(hashtable)的简单实现
  4. 华为codecraft2018总结
  5. 使用HTML Help Workshop制作chm文件
  6. 一个关于给文件夹赋予其他用户访问权限问题
  7. 青年科学家自杀到底悲哀在何处?!
  8. 自媒体短视频创作者都有哪些创作运营问题,可以让你轻松操作自媒体赚大钱
  9. python的dropna_python--data.dropna
  10. derain survey