搭建远程科学计算环境(R Studio+iPython Notebook+FTP Server)

R Studio和iPython Notebook是我比较喜欢的两个科学计算环境,它们也都支持远程使用,很是方便。r如果你还没有装Python的话,建议安装一站到位的Anaconda,本文假定iPython Notebook已经可以在本机(即localhost上)使用。

准备工作

首先,我们需要将服务器设置为静态IP,因为我们自然不想每次使用的时候都查一遍服务端的IP。局域网内有很多设置的方式,最简单的是在路由器设置一下DHCP地址保留。在360路由器内设置如图:


设置静态IP

接下来,最好新建一个用户作为"客人"用户,毕竟让其他用户使用你的账号和工作空间可能会带来一些不便。在Linux环境下这项操作非常简单,即:

$ sudo groupadd yourgroupname
$ sudo useradd yourusername -g yourgroupname
$ sudo passwd yourusername
$ sudo chown -R yourusername:yourgroupname /home/yourusername/

这时需要注意将shell的路径添加给新用户,打开/etc/passwd文件,找到yourusername开头的一行,那一行如果在/home/yourusername/:后没有内容,则需要在该行的末尾加上/bin/bash。


设置shell路径

安装R Studio Server

首先,安装R语言的基础包,这个过程也会安装一些附带的包,如boot、lattice等。

$ sudo apt-get install r-base

安装好R语言环境后,就可以按照官网上的方法按照RStudio Server了:

$ sudo apt-get install gdebi-core
$ wget https://download2.rstudio.org/rstudio-server-0.99.903-amd64.deb
$ sudo gdebi rstudio-server-0.99.903-amd64.deb

如果使用wget单线程下载太慢的话,建议使用axel进行多线程下载,如使用10个线程下载的命令为:

$ axel -n 10 https://download2.rstudio.org/rstudio-server-0.99.903-amd64.deb

这时RStudio Server就应该可以用了。同一网络的主机都可以使用浏览器中访问http://本机ip:8787,就可以进入登陆界面:


RStudio-Server

在这里使用刚才新建的用户名和密码登陆就可以用了。当然,你也可以再设置使用Git进行版本控制(建议配合GitHub),就不再赘述了。

安装iPython Notebook Server

实际上,当你可以在本地使用Notebook时,就已经完成了一大半了。剩下的只需要小小的配置一下:
首先,进入一个python终端,我们来设置一下notebook的密码:

$ python
>>> from IPython.lib import passwd
>>> passwd()
Enter password:
Verify password:

这时会返回给你一串"SHA1:"开头的字符串,这就是经过SHA1算法加密后的密码,记得将它复制下来。设置好密码后,我们就要配置notebook了。首先在管理员权限下生成配置文件:

# jupyter notebook --generate-config

然后系统就会返回给你配置文件的地址,比如我的配置文件生成到了~/.jupyter/目录下。我们只需要修改一下一个文件即可:

$ sudo vim ~/.jupyter/jupyter_notebook_config.py

在文件底部加上这几行:

c = get_config()
c.NotebookApp.password = u'sha1:----------------------------'     #你的SHA1密文
c.NotebookApp.port = 9999
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False

保存后关闭所有的ipython notebook及其内核,然后重新打开ipython notebook:

$ jupyter notebook             

现在notebook不会直接在浏览器弹出新的标签页了,同一网络的主机都可以通过浏览器访问http://你的ip:9999 输入刚才设置的密码后即可使用!


IPYNB

搭建FTP服务器

现在有了运行环境,可远程的主机还不能把文件/数据发到服务器。因此,在服务器上搭建FTP也很有必要了。在Linux下使用vsftpd搭建FTP很简单:

$ sudo apt-get install vsftpd
$ sudo vim /etc/vsftpd.conf

下面需要根据自己的需求修改一下配置文件,即vsftpd.conf。每个人的需求都不同,但至少要去掉以下几行的注释:

anonymous_enable=NO
ascii_upload_enable=YES
ascii_download_enable=YES
write_enable=YES
use_localtime=YES

保存退出后,我们需要重启一下FTP服务:

$ sudo systemctl restart vsftpd

现在可以测试一下能否登陆进去FTP了:

$ ftp yourIPaddress
Connected to 192.168.0.123.
220 Welcome to blah FTP service.
Name (192.168.0.123:zhengchen): yourusername
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

大功告成!这样就可以使用FileZilia等工具进行文件的上次和下载了。

陈政/arc001 原创作品转载请注明出处

你可能感兴趣的:(搭建远程科学计算环境(R Studio+iPython Notebook+FTP Server))