《R的极客理想—工具篇》—— 1.5 多人在线协作R开发RStudio Server

简介:

本节书摘来自华章出版社《R的极客理想—工具篇》一 书中的第1章,第1.5节,作者:张丹,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.5 多人在线协作R开发RStudio Server

问题
R语言开发,哪个工具最好用?
screenshot

引言
RStudio是R语言开发中的利器,是最好用的R语言IDE集成环境。RStudio Server更是利器中的神器。不仅提供了Web的功能,可以安装到远程服务器上,通过Web进行访问,还支持多用户的协作开发。如此神器,快来动手试一下吧。

1.5.1 RStudio和RStudio Server

RStudio 是一个强大的、免费的、开源的R语言集成开发环境的应用软件,可以安装在Windows、Linux和Mac 不同操作系统上。RStudio Server 是一个基于Web访问的RStudio云端开发环境,需要安装在Linux服务器上面,支持多用户远程访问使用。

1.5.2 RStudio Server安装

本文使用的系统环境是:

Linux: Ubuntu Server 12.04.2 LTS 64bit
R: 3.0.1 x86_64-pc-linux-gnu
IP: 192.168.1.13

注 RStudio Server只支持Linux系统环境。
在Linux Ubuntu环境中,下载并安装64位的Rstudio Server:

~ sudo apt-get install gdebi-core
~ sudo apt-get install libapparmor1  # Required only for Ubuntu, not Debian
~ wget http://download2.rstudio.org/rstudio-server-0.97.551-amd64.deb
~ sudo gdebi rstudio-server-0.97.551-amd64.deb

安装后,RStudio Server会自动启动运行。

~ ps -aux|grep rstudio-server  # 查看RStudio Server运行进程
998       2914  0.0  0.1 192884  2568 ?        Ssl  10:40   0:00 /usr/lib/
rstudio-server/bin/rserver

可以看到,RStudio Server的服务已启动,8787端口被打开。

1.5.3 RStudio Server使用

通过浏览器,我们访问RStudio Server: 192.168.1.13:8787,IP地址为RStudio Server服务器的地址,如图1-6所示。

screenshot

RStudio Server 登录需要用Linux 系统的用户账号。如果想增加或减少用户,直接对Linux系统用户进行操作就可以了。我的环境中用户登录,用户名是conan,密码是conan111。登录之后看到的界面如图1-7所示。

screenshot

  1. RStudio Server 的系统配置
    RStudio Server主要有两个配置文件,默认文件不存在。
/etc/rstudio/rserver.conf
/etc/rstudio/rsession.conf

设置端口和ip控制:

~ vi /etc/rstudio/rserver.conf
www-port=8080  # 监听端口
www-address=127.0.0.1  # 允许访问的IP地址,默认为0.0.0.0

重启Rstudio Server服务器,配置生效:

~ sudo rstudio-server restart

会话配置管理:

~ vi /etc/rstudio/rsession.conf
session-timeout-minutes=30  # 会话超时时间
r-cran-repos=http://ftp.ctex.org/mirrors/CRAN/  # 设置CRAN资源库
  1. RStudio Server 的系统管理
    启动、停止、重启 RStudio Server服务器的命令如下:
~ sudo rstudio-server start    # 启动
~ sudo rstudio-server stop     # 停止
~ sudo rstudio-server restart  # 重启

查看运行中的R进程:

~ sudo rstudio-server active-sessions
PID     TIME COMMAND
6817 00:00:03 /usr/lib/rstudio-server/bin/rsession -u zd

指定PID, 停止运行中的R进程:

~ sudo  rstudio-server suspend-session 6817
~ sudo  rstudio-server active-sessions  # 再次查看进程
  PID     TIME COMMAND

停止所有运行中的R进程:

~ sudo rstudio-server suspend-all

强制停止运行中的R进程,此操作优先级最高,立刻执行。

~ sudo rstudio-server force-suspend-session <pid>
~ sudo rstudio-server force-suspend-all

RStudio Server临时下线,不允许Web访问,并给用户友好的错误提示:

~ sudo rstudio-server offline
rstudio-server start/running, process 6880
RStudio Server上线:
~ sudo rstudio-server online
rstudio-server start/running, process 6908
RStudio Server的其他操作和单机版的RStudio一样。

1.5.4 RStudio Server多人协作

  1. 增加新用户和新用户组
~ sudo groupadd hadoop  # 创建Hadoop用户组
~ sudo useradd hadoop -g hadoop  # 创建Hadoop用户并加入到Hadoop用户组
~ sudo passwd hadoop  # 设置Hadoop用户的密码
~ sudo adduser hadoop sudo  # 增加Hadoop用户到sudo组
~ sudo mkdir /home/hadoop  # 创建Hadoop用户的home目录
~ sudo chown -R hadoop:hadoop /home/hadoop  # 给/home/hadoop目录及子目录,设置用户权限
以Hadoop用户登录,检查用户是否设置成功
~ ssh hadoop@localhost  # 通过 ssh 远程登录
~ bash
~ pwd  # 查看登录后的访问目录
/home/hadoop

新打开浏览器窗口通过Hadoop账号登录 ,如图1-8所示。
screenshot

  1. Git代码共享
    首先安装Git:
~ sudo apt-get install git
~ ssh-keygen -t rsa  #生成rsa密钥对
~ cat /home/conan/.ssh/id_rsa.pub  #查看公钥
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDMmnFyZe2RHpXaGmENdH9kSyDyVzRas4GtRwMNx+qQ
4QsB8xVTrIbFayG2ilt+P8UUkVYO0qtUJIaLRjGy/SvQzzL7JKX12+VyYoKTfKvZZnANJ414d6oZpbDw
sC0Z7JARcWsFyTW1KxOMyesmzNNdB+F3bYN9sYNiTkOeVNVYmEQ8aXywn4kcljBhVpT8PbuHl5eadSLt
5zpN6bcX7tlquuTlRpLi1e4K+8jQo67H54FuDyrPLUYtVaiTNT/xWN6IU+DQ9CbfykJ0hrfDU1d1LiLQ
4K2Fdg+vcKtB7Wxez2wKjsxb4Cb8TLSbXdIKEwSOFooINw25g/Aamv/nVvW1 conan@conan-deskop

接下来,我们需要把本地项目上传到Github。首先在Github上创建一个新的项目rstudio-demo,地址为github.com/bsspirit/rstudio-demo,通过下面的操作上传本地目录到rstudio-demo项目。

~ mkdir /home/conan/R/github    # 创建rstudio-demo项目目录
~ cd /home/conan/R/github
~ git init  # 初始化Git
~ git add   # 增加当前目录及子目录到本地Git库
~ git commit -m 'first comment'  # 在本地Git库提交
~ git remote add origin git@github.com:bsspirit/rstudio-demo.git
# 绑定当前目录和github的项目
~ git push -u origin master  # 上传本地Git库中的代码到Github

打开RStudio设置到/home/conan/R/github目录,tools–>version control –> project setup,如图1-9所示。
screenshot

在RStudio中修改sayHello.r的代码:

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

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

点击tools–>version control–> commit提交,如图1-10所示。
screenshot

上传到Github,只需要点击tools–>version control–> push,如图1-11所示。
screenshot

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

相关文章
|
6月前
|
Java 开发工具 Android开发
猿创征文|工具百宝箱-代码编辑器-版本控制工具-终端神器-项目与事务跟踪工具-SFTP客户端
猿创征文|工具百宝箱-代码编辑器-版本控制工具-终端神器-项目与事务跟踪工具-SFTP客户端
|
JavaScript 关系型数据库 MySQL
超级实用,centos7.3安装 Etherpad 搭建一个线上协同创作平台(多人一起在线编写)
超级实用,centos7.3安装 Etherpad 搭建一个线上协同创作平台(多人一起在线编写)
693 0
超级实用,centos7.3安装 Etherpad 搭建一个线上协同创作平台(多人一起在线编写)
|
6月前
|
前端开发 测试技术 API
“构建可靠的前端测试环境与主页搭建实践“
“构建可靠的前端测试环境与主页搭建实践“
22 0
|
9月前
|
XML SQL JSON
程序员开发常用的云在线工具
云在线开发工具:代码格式化,base64/md5加密解密,utf-8转换,时间戳在线生成
175 0
|
前端开发 JavaScript
Primordial Farm(初元农场)星球生态游戏开发源代码部署流程
Primordial Farm(初元农场)星球生态游戏开发源代码部署流程
|
监控 Java API
手把手教会你 | 多用户-服务器聊天室应用软件开发
手把手教会你 | 多用户-服务器聊天室应用软件开发
196 0
手把手教会你 | 多用户-服务器聊天室应用软件开发
|
存储 自然语言处理 前端开发
我用这些开源项目轻松搭建了一个在线文档平台
我用这些开源项目轻松搭建了一个在线文档平台
1806 0
我用这些开源项目轻松搭建了一个在线文档平台
|
架构师 Unix 应用服务中间件
PowerShell 主架构师:我用业余时间开发项目,表现优秀反而被微软降级了
经过两年多的时间,微软在 5 月 3 日宣布对用于 Visual Studio Code 的 PowerShell 扩展进行了一次重大更新,是对 PowerShell Editor Services 的核心 PowerShell 引擎的彻底改造。
105 0
|
移动开发 PHP 数据库
社交系统ThinkSNS+安装部署演示
ThinkSNS+版本发布之后,很多小伙伴们反馈安装部署有些困难,那么今天我们就通过录制视频的形式,给大家演示安装部署的全过程,由于时间紧张没有字幕,敬请谅解,后续我们有时间的时候会进行后期处理。
1458 0