服务器Rstudio-server的搭建

Rstudio-server的搭建

Rstudio-server可以通过Rstudio网页端来远程连接Linux服务器并操作R来处理数据。

RStudio Server enables you to provide a browser based interface to a version of R running on a remote Linux server, bringing the power and productivity of the RStudio IDE to server-based deployments of R.

这段时间由于疫情,在家办公,时间能够自己安排;索性想将托管在学校的服务器上搭建rstudio-server,让本来就是linux命令行界面能以图形化界面的方式---Rstudio展开;经过一段时间的折腾----主要是联系学校各种老师(唯唯诺诺)以及处理各种报错,rstudio-server总算能在“服务器IP:8787”上打开并正常运行。现主要记录几点,算是这段时间的处理笔记;

  • 首先,要明白我们的实际需求:
    studio-server的使用是采用服务端IP+服务端口进行正常访问(在成功安装rstudio-server的前提下),因此我们要保证在客户端上能够正常访问到该IP(8787端口在rstudio-server start后会自动开启)。

  • 其次,需要明白实际处理的难点:
    要明白一般高校为了保护学校内数据的安全,都基本采用内网的方式;因而在这个前提下,学校一般会购买专业的“网络安全产品”充当校内网络传输的“中间介质”并对内进行统一的运维,比如绿盟的堡垒机;因此这里也需要明白“服务端---堡垒机---客户端”三者之间的联系。
    通俗一点来说就是,在没有堡垒机的情况下,客户端通过输入服务器的IP(相当于服务器的身份证号码)+端口(相当于访问服务器某项服务的一个窗口)的方式就能正常访问并运维服务器。而出与安全的考虑,学校购买的堡垒机在两者之间就会扮演一个“安全中间人”的角色,即服务端发送的IP经过堡垒机之后会发生改变并发送到客户端上,这样就避免了一些恶意用户通过服务器的IP对服务器进行恶意访问攻击;如下图所示:

    170945f46df347a2b79db38b6ca60942.jpg

解决办法:

这样也就不难理解:为什么在学校服务器上成功安装rstudio-server后却无法在客户端正常访问,因为服务器端的IP+8787端口无法通过堡垒机(假设堡垒机对你的服务器只开启了SSH运维设备)。
既然我们的目的是让客户端通过一个web页面(IP+端口)取访Linux服务器,但这个页面在经过堡垒机的时候被"墙"掉了,那么问题也变得比较好解决了,在堡垒机上开启这台服务器的web代理,即介于客户端和Linux服务器之间充当的一台web代理服务器,有了它之后,客户端不是直接到Linux服务器去访问(在学校有堡垒机的情况下本身不太现实),而是向代理web服务器发送请求,信号会先送到代理web服务器上,并由web代理服务器取回Linux服务器运行的结果并返回到客户端上。而在堡垒机上开启你这台服务器web代理需要学校堡垒机的超级用户,因此,这最大的难点就是跟学校老师沟通,讲清你的需求,一般情况下老师会同意的。

柳暗花明又一“坑”

在成功开启web代理并如愿在Borrower上访问到Rstudio界面之后,却发现有一些包比如Seurat安装及其困难;其次无法实时可视化,图片无法报存为PNG格式等;MD~


(成功访问)
(plot(cars)报错,TMD)

解决办法:

  • 1:首先是安装Seruat包困难的问题;
    由于rstudio-server默认会指定public下(也就是公共目录下)R的版本,而public下的R根据我多次踩坑经验,安装R包时很容易面临着gcc编译器等乱七八糟的问题,这我猜测可能时由于Linux系统版本下自带的gcc编译与R需要的编译版本不匹配造成的,因此解决办法是Conda安装R,Conda安装R包,并在/etc/rstudio/rserver.conf指定该conda安装的R版本,默认情况下,使用conda安装R及packages的好处是会自动解决很多依赖、相关库的问题。当然如果你愿意去慢慢修改Linux系统版本下gcc编译器,也没问题,只是风险比较大!
  • 2:其次是报RStudioGD()错误的问题;
    这个问题是由于Linux下相关库缺失造成绘图设备不可用,网上找了很多帖子,比较靠谱的有这个:Linux安装软件报错:version ZLIB_1.2.9 not found | showteeth's blog
    (成功绘图,R包加载成功!!)

至此,折腾了好几天的rstudio总算弄完,之前仅仅是因为个人PC跑不动单细胞的大数据,而萌生是否能在强悍的服务器上使用Rstudio的想法,但未想过后面真是一步一个坑,首先要明白怎么弄,然后就是不断地沟通、不断地排错。对于非计算机类科班出身的人来说,大有 “我就是为了这瓶醋而特地包了份饺子” 的感觉,但确实也学到了不少~。

参考:
Download RStudio Server - RStudio
惊艳 | RStuido server选择不同的R版本(conda中的不同R版本) - 云+社区 - 腾讯云 (tencent.com)

你可能感兴趣的:(服务器Rstudio-server的搭建)