网页版Rstudio︱RStudio Server多人在线协作开发

想了解一下RStudio Server,太给力的应用,可以说成是代码分布式运行,可以节省时间,放大空间。

RStudio是一个非常优秀的R语言IDE。 RStudio除了在各种系统中有桌面版本外还有Server版,它可以装载在linux主机上,用户可以通过浏览器远程登录使用R进行数据分析。笔者在之前也曾经折腾过好几回都没成功,不过今天运气不错居然实现了。

最近更新(2016-11-29):

R︱Linux+Rstudio Server尝鲜笔记(打造最佳Rstudio体验+报错的解决方案)

——————————————————————————————

一、Rstudio Server下载

部署RStudio Server并不是件困难的事情,根据官方说明,一共包括四个步骤:

  1. 安装Extra Packages for Enterprise Linux (EPEL);
  2. 安装R;
  3. 安装RStudio Server;
  4. 配置RStudio Server.

1.安装EPEL

安装EPEL可以使你更方便的从EPEL来安装R语言,而无需通过其他途径来安装R。如果你运行的是RedHat或CentOS系统的话,你也要安装EPEL来确保RStudio Server正常运行。

不同系统版本安装EPEL的代码如下:

RHEL 5.x / CentOS 5.x

32位系统

64位系统

RHEL 6.x / CentOS 6.x

32位系统

64位系统

接下来运行:

1 $ yum upgrade

等待安装完成即可。

2.安装R

当EPEL成功安装后,使用以下代码便可以轻松的进行R语言的安装:

1 $ sudo yum install R

3.安装RStudio Server

对于RedHat/CentOS (5.4+),安装RStudio Server的代码为:

32位系统

2 $ sudo yum install --nogpgcheck rstudio-server-0.98.501-i686.rpm

64位系统

2 $ sudo yum install --nogpgcheck rstudio-server-0.98.501-x86_64.rpm

4.配置RStudio Server

RStudio Server默认使用的端口是8787,因此在浏览器中输入以下地址便可以看到登录界面:

但是你现在还不能使用你的管理员账号来登录,因为RStudio Server禁止系统级用户登录(包括所有ID小于100的用户),这可能是出于安全因素考虑。因此,必须先添加一个满足要求的新用户。

——来源于Hawkin博客:http://www.hawkinqian.com/zh/r-cloud-deploying-rstudio-server/

还可以参考博客:http://www.linuxidc.com/Linux/2012-02/54610.htm

——————————————————————————————

二、RStudio Server的使用

通过浏览器,我们访问RStudio Server: http://192.168.1.13:8787

通过Linux系统用户登陆: conan:conan111

太帅了是不是,web版的RStudio!!

——————————————————————————————

三、RStudio Server多人在线协作开发

1、增加新用户  案例1


~ sudo groupadd hadoop
~ sudo useradd hadoop -g hadoop;
~ sudo passwd hadoop
~ sudo adduser hadoop sudo
~ sudo mkdir /home/hadoop
~ sudo chown -R hadoop:hadoop /home/hadoop

#测试账号设置成功
~ ssh hadoop@localhost
~ bash
~ pwd
/home/hadoop

新打开浏览器窗口通过 hadoop账号登陆

2、添加新用户 案例2

添加用户的命令为:

1 useradd username -u uid -p password

千万记得将uid设定为大于100的数字,大于500更好。

也许你会发现使用新创建的用户名依然无法登录,至少我的情况是这样。对此,我找到了解决办法,即通过修改RStudio Server的用户组限制来解决。

在设置用户组权限之前,必须先创建2个配置文件,RStudio Server在安装时不会自动创建这两个文件,必须手动操作。代码如下:

1 $ touch /etc/rstudio/rserver.conf
2 $ touch /etc/rstudio/rsession.conf
3 $ ls

编辑rserver.conf文件并添加以下代码:

1 auth-required-user-group=rstudio_users

其中,你可以将“rstudio_users”命名为任何你想要的群组名字。

接下来,将刚才新建立的用户名添加到该用户组:

1 $ groupadd rstudio_users
2 $ usermod -g rstudio_users -G rstudio_users username
3 $ rstudio-server restart

重启RStudio Server之后,你会发现终于可以用新用户登录啦!赶紧来体验在iPad上操作R的感觉吧!

还有一件事情必须注意噢!如果你使用其他电脑的浏览器来远程使用R的话,请确保至少采用以下版本的浏览器:

  • Firefox 10;
  • Safari 5.0;
  • Google Chrome 15.

RStudio Server原生并不支持IE浏览器,但是你可以通过安装谷歌浏览器内嵌框架这个IE插件来实现IE操作。

如果你希望了解更多部署RStudio Server的信息,请前往RStudio Server Website进行了解。

——————————————————————————————

四、其他功能

1、Git代码共享

安装git

sudo apt-get install git

#生成rsa密钥对
ssh-keygen -t rsa

#查看公钥并
cat /home/conan/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMmnFyZe2RHpXaGmENdH9kSyDyVzRas4GtRwMNx+qQ4QsB8xVTrIbFayG2ilt+P8UUkVYO0qtUJIaLRjGy/SvQzzL7JKX12+VyYoKTfKvZZnANJ414d6oZpbDwsC0Z7JARcWsFyTW1KxOMyesmzNNdB+F3bYN9sYNiTkOeVNVYmEQ8aXywn4kcljBhVpT8PbuHl5eadSLt5zpN6bcX7tlquuTlRpLi1e4K+8jQo67H54FuDyrPLUYtVaiTNT/xWN6IU+DQ9CbfykJ0hrfDU1d1LiLQ4K2Fdg+vcKtB7Wxez2wKjsxb4Cb8TLSbXdIKEwSOFooINw25g/Aamv/nVvW1 conan@conan-deskop

把公钥并上传到github
创建一个新的Project: rstudio-demo
https://github.com/bsspirit/rstudio-demo

绑定本定项目和rstudio-demo


~ cd /home/conan/R/github
~ git init
~ git add .
~ git commit -m 'first comment'
~ git remote add origin git@github.com:bsspirit/rstudio-demo.git
~ git push -u origin master

打开RStudio设置到/home/conan/R/github目录,tools–>version control –> project setup

在RStudio中修改sayHello.r的代码


sayHello<-function(name){
  print(paste("hello",name))
}

sayHello("Conan")
sayHello("World")

提交:点击tools–>version control–> commit

上传到github:点击tools–>version control–> push

RStudio有如此强大的功能,极大的降低了编程的门槛。还没有用过的同学,赶紧去体验一把吧。极客的感觉!

2、云平台中的RStudio

如果有同道中人想进一步折腾可以考虑和云平台相接合,例如EC2。Amazon EC2是Amazon Web Services(简称Aws)中的一个主要产品。 Amazon EC2可以看作是一台云主机,云主机上不仅可以搭建网站,也可以运行RStudio Sever。目前Amazon对微型主机提供了新注册用户免费试用一年的活动,爱折腾的同学可以试试。当然国内的盛大云也有超微型主机提供,一年400多元,比较适合个人或小型公司使用。

使用浏览器运行R的好处:

  • 你可以从任何一台能上网的计算机去操作R
  • 共享代码、数据和其它文档
  • 多用户共享高性能计算资源与协同工作
  • 集中管理R扩展包

设想一下,你作为公司数据分析师到客户那里做咨询或培训,使用客户电脑和RStudio Server就能直接利用公司主机上的数据集和程序代码作演示,而不必携带厚重的笔记本出差,这样岂不轻松又显得有科技含量。

综合参考博客:

1、http://www.linuxidc.com/Linux/2012-02/54610.htm

2、http://blog.fens.me/r-rstudio-server/

3、http://www.hawkinqian.com/zh/r-cloud-deploying-rstudio-server/

网页版Rstudio︱RStudio Server多人在线协作开发的更多相关文章

  1. 在线白板,基于socket.io的多人在线协作工具

    首发:个人博客,更新&纠错&回复 是昨天这篇博文留的尾巴,socket.io库的使用练习,成品地址在这里. 代码已经上传到github,传送门.可以开俩浏览器看效果. 现实意义是俩人在 ...

  2. 试玩 GOWOG ,初探 OpenAI(使用 NeuroEvolution 神经进化)与 Golang 多人在线游戏开发

    GOWOG: 原项目:https://github.com/giongto35/gowog 我调整过的:https://github.com/Kirk-Wang/gowog GOWOG 是一款迷你的, ...

  3. 在线协作开发工具apizza使用方法(https://apizza.net/projects)

    1. 2. 3. 4. 5. 谷歌浏览器点击选择“更多工具”->“扩展程序”  6. 将刚才解压好的文件夹拖到这个位置即可

  4. 基于.Net平台C#的微信网页版API

    git上有很多类似的项目,但大多都是python和js的,为了便于.Net windows平台的使用,我重构了一个.Net版本的,已整理开源 https://github.com/leestar54/ ...

  5. 基于WebSocket实现网页版聊天室

    WebSocket ,HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议,其使用简单,应用场景也广泛,不同开发语言都用种类繁多的实现,仅Java体系中,Tomcat,Jetty,Sp ...

  6. 在线协作沟通工具DesignBoard帮助设计团队更有效地进行沟通与版本管理

    设计稿呈现缺乏整体性.远程沟通效率低.多版本管理混乱,这可能是很多创业团队都面临的问题,并且这些问题都将直接影响到产品开发进度.国内创业团队彩程设计也曾面临同样的问题,后来他们在做某个新项目时尝试把设 ...

  7. git 如何实现进行多人协作开发(远程仓库)

    第一.Git作为分布式的版本控制系统,你是你本地仓库的主人,但是想要实现多人的协作开发,你就要将你本地的开发推送到远程共享仓库中供大家下载,本篇主要以github作为远程服务器来介绍有关远程仓库这块内 ...

  8. Asp.Net Mvc基于Fleck开发的多人网页版即时聊天室

    一.项目的核心说明 1.Fleck这个是实现websocket一个比较简单第三方组件,它不需要安装额外的容器.本身也就几个接口可供调用. 2.项目是基于.net framework 4.7.2 ,在v ...

  9. 新开源HTML5单文件网页版ACME客户端,可在线申请Let's Encrypt、ZeroSSL免费HTTPS多域名通配符泛域名SSL/TLS证书(RSA/ECC/ECDSA)

    目录 开源项目的起源 项目地址 使用方法 第一步:选择Let's Encrypt.ZeroSSL或其他证书颁发机构 第二步:证书配置,填写域名 第三步:完成域名所有权的验证 第四步:下载保存证书PEM ...

随机推荐

  1. 和spring cloud/boot 学习如何管理自己的组件

    案例, 功能: 需要写一个往kafka上报数据的组建. 当组建启动时,需要建立如下资源: 1, 和kafka建立若干条连接 2, 启动一个线程池 3, 启动上报一个缓冲区 问题如下: 1, 如何在sp ...

  2. CF 246E. Blood Cousins Return [dsu on tree STL]

    题意: 一个森林,求k级后代中多少种不同的权值 用set维护每个深度出现的权值 一开始一直在想删除怎么办,后来发现因为当前全局维护的东西里都是当前子树里的,如果要删除那么当前一定是轻儿子,直接清空se ...

  3. BZOJ 1116: [POI2008]CLO [连通分量]

    Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 你要把其中一些road变成单向边使得:每个town都有且只有一个入度 ...

  4. POJ3335 POJ3130 POJ1474 [半平面交]

    终于写出自己的半平面交模板了....... 加入交点的地方用了直线线段相交判定 三个题一样,能从任何地方看到就是多边形的内核 只不过一个顺时针一个逆时针(给出一个多边形的两种方式啦),反正那个CutP ...

  5. mysql 5.7 支持json格式

    1.JSON格式的支持:mysql> create table user ( uid int auto_increment,      -> data json,primary key(u ...

  6. linux下双网卡的绑定

    如果服务器上有两快网卡就可以把它绑定为一块虚拟的网卡,如果一块网卡坏了另一块还可以继续工作,增加了冗余度和负载,具体做法如下: 新建一个虚拟的网卡,命令如下: iv /etc/sysconfig/ne ...

  7. httpd的三种模式比较

    查看你的httpd使用了哪种模式: /usr/local/apache2/bin/httpd -V |grep 'Server MPM' 使用哪种模式,需要在编译的时候指定 --with-mpm=pr ...

  8. css3渐变 transition使用方法

    <style> div{ width:300px; height:300px; background:#89F; margin:100px auto; transition:width 1 ...

  9. PKUWC 2018游记

    PKUWC 2018游记 标签: Day\([-inf,0)\) 停课之后一直各种浪的飞起,考试rank20+,不搞颓但是学习很没有状态.还经常带着耳机被谢总抓了好几次,然后被拉过去谈话了好几次... ...

  10. 【学习笔记】Hibernate关联映射(Y2-1-6)

    Hibernate关联映射 关联映射就是将关联关系映射到数据库里,在对象模型中就是一个或多个引用. 1.单向多对一关联 准备数据库 部门表和员工表 其中部门表有两列 部门编号和名称 员工表有三列 员工 ...