滴水穿石

种一棵树最好的时间是十年前,其次是现在

0%

在centos或Ubuntu下安装Rstudio server,用浏览器打开

由于处理数据太大导致本地电脑内存不够,因此才想着利用服务器安装Rstudio server。服务器版本的Rstudio可以通过网页版本访问:IP地址+端口。

PS: 安装系统是Ubuntu18.04LTS / CentOS8, Rstudio Server的安装需要管理员root权限。

Ubuntu系统

安装

先安装基础的依赖

1
2
apt-get install gdebi-core
apt-get install libapparmor1

下载目前最新版Rstudio server1.1.383

1
2
wget https://download2.rstudio.org/rstudio-server-1.1.383-amd64.deb
sudo gdebi rstudio-server-1.1.383-amd64.deb

安装R,Rstudio server依赖R

1
sudo dnf install r-base

创建Rstudio配置文件:
/etc/rstudio/rserver.conf
/etc/rstudio/rsession.conf

1
2
3
4
vi /etc/rstudio/rserver.conf
rsession-which-r=/home/chi/test/software/anaconda3/bin/R # 可通过修改配置文件,添加不同版本或路径的r-base
www-port=8787 # 指定网页访问端口
www-address=172.18.119.13 # 允许访问的IP地址
1
2
3
vi /etc/rstudio/rsession.conf
session-timeout-minutes=30 # 会话超时时间
r-cran-repos=http://ftp.ctex.org/mirrors/CRAN # CRAN资源库

打开8787端口

1
2
3
sudo apt install ufw
sudo ufw enable
sudo ufw default deny

启动

1
2
3
4
5
6
# 运行
sudo rstudio-server start
# 查看状态
sudo rstudio-server status
# 重启
sudo rstudio-server restart

1
2
3
4
5
6
7
8
9
10
11
12
13
14
##################################################################
● rstudio-server.service - RStudio Server
Loaded: loaded (/usr/lib/systemd/system/rstudio-server.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-10-21 08:58:19 CST; 7s ago
Process: 19196 ExecStart=/usr/lib/rstudio-server/bin/rserver (code=exited, status=0/SUCCESS)
Main PID: 19197 (rserver)
Tasks: 3 (limit: 822404)
Memory: 12.1M
CGroup: /system.slice/rstudio-server.service
└─19197 /usr/lib/rstudio-server/bin/rserver

Oct 21 08:58:19 dong.lab systemd[1]: Starting RStudio Server...
Oct 21 08:58:19 dong.lab systemd[1]: Started RStudio Server.
##################################################################

出现Active: active (running) since,则安装成功。

通过本地浏览器服务器IP地址:8787打开。root用户无法登陆,需要新建一个用户进行登陆。

1
2
3
4
5
6
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目录及子目录,设置用户权限

例如:172.18.119.13:8787。账户为Linux服务器账户。

CentOS系统

1
2
3
sudo dnf install r-base
wget https://download2.rstudio.org/server/centos8/x86_64/rstudio-server-rhel-1.3.1093-x86_64.rpm
sudo yum install rstudio-server-rhel-1.3.1093-x86_64.rpm
1
2
3
4
5
6
7
8
9
10
# 查看防火墙
sudo firewall-cmd --list-ports
# 打开8787
firewall-cmd --zone=public --add-port=8787/tcp --permanent
# 重启防火墙
systemctl restart firewalld
systemctl start firewalld #重启
systemctl stop firewalld #关闭
systemctl status firewalld #状态
systemctl reload firewalld #重启

Rstudio server常用命令

启动命令

1
2
3
4
5
sudo rstudio-server verify-installation #查看安装是否正常
sudo rstudio-server start #启动RStudio-server
sudo rstudio-server status #查看RStudio-server
sudo rstudio-server stop #关闭RStudio-server
sudo rstudio-server restart #重启RStudio-server

进程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看进程
rstudio-server active-sessions
#PID TIME COMMAND
#3389 00:00:38 /usr/lib/rstudio-server/bin/rsession -u zouhua ---
#3487 00:00:08 /usr/lib/rstudio-server/bin/rsession -u liaoshuilin ---

# 终止进程
# 单个PID
rstudio-server suspend-session <pid>
# 所有PID
rstudio-server suspend-all
# 强制停止运行中的R进程,优先级最高,立刻执行
rstudio-server force-suspend-session <pid>
rstudio-server force-suspend-all

临时上下线

1
2
3
# 不允许web访问,并给用户友好提示
rstudio-server offline
rstudio-server online

遇到的bug

登陆过程Rstudio initialization error unable to connect to service,这是因为SELinux(Security-Enhanced Linux)设置的问题

  • 报错信息: 是因为SELinux阻止了外界访问

    1
    Oct 21 13:31:42 dong platform-python[51954]: SELinux is preventing rserver from using the setpgid access on a process.#012#012*****  Plugin catchall (100. confidence) suggests   **************************#012#012If you believe that rserver should be allowed setpgid access on processes labeled init_t by default.#012Then you should report this as a bug.#012You can generate a local policy module to allow this access.#012Do#012allow this access for now by executing:#012# ausearch -c 'rserver' --raw | audit2allow -M my-rserver#012# semodule -X 300 -i my-rserver.pp#012
  • 处理方法1,安装报错信息提示进行

    1
    2
    3
    4
    5
    6
    # 显示报错详细信息
    sealert -l 33a3acfb-52fa-4b2d-bcff-796eeb58eac0

    # 运行debug命令
    ausearch -c 'rserver' --raw | audit2allow -M my-rserver
    semodule -X 300 -i my-rserver.pp
  • 处理办法2,关闭SELinux(Work)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    # 查看 SELinux状态
    sestatus

    #SELinux status: enabled
    #SELinuxfs mount: /sys/fs/selinux
    #SELinux root directory: /etc/selinux
    #Loaded policy name: targeted
    #Current mode: enforcing
    #Mode from config file: enforcing
    #Policy MLS status: enabled
    #Policy deny_unknown status: allowed
    #Memory protection checking: actual (secure)
    #Max kernel policy version: 31

    # 关闭SELinux status enabled
    sudo vi /etc/sysconfig/selinux
    #修改SELinux=enforcing 为 SELinux=disabled

    #reboot系统并检查SELinux
    sudo shutdown -r now
    sestatus
    #SELinux status: disabled

在ubuntu20开启防火墙后,导致无法使用ssh命令登陆服务器ssh: connect to host 192.168.106.31 port 22: Connection timed out,使用如下命令关闭防火墙即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo ufw status
#Status: active
#
#To Action From
#-- ------ ----
#22/tcp ALLOW Anywhere
#22/tcp (v6) ALLOW Anywhere (v6)

sudo ufw disable
#Firewall stopped and disabled on system startup

ssh zouhua@192.168.106.31
#Activate the web console with: systemctl enable --now cockpit.socket

#Last login: Wed Oct 21 10:37:00 2020 from 192.168.116.16

查看server的日志文件信息查看error message

1
2
tail -f /var/log/syslog
tail -f /var/log/messages

参考链接

在centos8下安装Rstudio server
Ubuntu安装 Rstudio server
如何在Ubuntu 18.04上安装最新的R base 及Rstudio server

-------- 本文结束 感谢阅读 --------
# 添加内容