找回密码
 立即注册
查看: 4578|回复: 1

Rserve如何修改配置文件,实现远程连接

[复制链接]
发表于 2017-5-29 01:57:12 | 显示全部楼层 |阅读模式
知道Rserve非常强大,而且可以在命令行通过R CMD Rserve --RS-enable-remote 启动Rserve并打开远程连接。
但每次都这样似乎非常困难,而且发现在server端打开R启动Rserve后,在PC端上访问服务器主机上的Rserve行不通。!?
查询Rserve配置仍然显示“remote  no”
听说可以新建一个Rserve.conf配置文件来修改Rserve的配置,但怎么试都覆盖不上去,有哪位大神能帮忙?跪求方法!
回复

使用道具 举报

 楼主| 发表于 2017-6-4 23:00:05 | 显示全部楼层
花了一天整整的时间,自己找到了答案。分享给大家吧!
这次研究Rserve主要是因为Tableau软件中有个“管理R连接”的功能,经查探一番后发现居然能够在tableau上调用R的各种数据分析算法,使得R的图形展示更具拓展性。这真是发现“发现新大陆”了。
然而在输入服务器地址和端口等参数后,点击确定连接得到的答案却是“服务器繁忙或未启用或没有权限访问……”之类的报错。
思来想去还是搞不定,够烦恼的。
于是到网上查了下,答案是:
1、启动R命令窗口,安装并加载Rserve包
2、在系统环境变量的path中加入R的32位启动程序路径,然后将Rserve启动程序文件从原本所在的包中拷贝到R32位启动程序路径中。
比如我的R的32位启动程序路径是:C:\Program Files\R\R-3.4.0\bin;
而Rserve启动程序所在路径是:C:\Program Files\R\R-3.4.0\library\Rserve\libs\i386;需要拷贝的文件有2个:Rserve.exe和Rserve.dll
3、测试Rserve是否连接能正常启动(在此用命令行启动为例)
3.1、验证环境配置是否成功:R CMD Rserve --help
3.2、查看Rserve当前配置情况:R CMD Rserve --RS-settings
你可能会看到下面的信息(C:\Users\77是我本机的默认启动路径,你的可能会不同):
C:\Users\77>R CMD Rserve --RS-settings
Rserve v1.7-3

config file: Rserv.cfg
working root: /tmp/Rserv
port: 6311
local socket: [none, TCP/IP used]
authorization required: no
plain text password: not allowed
passwords file: [none]
allow I/O: yes
allow remote access: no  (注意:这里的远程接口是关闭的)
control commands: no
interactive: yes
max.input buffer size: 262144 kB
(下面这一步主要是配置Rserve能够被远程访问)
3.3、我们需要创建两个文件:Rserv.cfg(即上面所提到的config file)和start.R(这个可选,仅为了重定义Rserve启动的提示内容)
Rserv.cfg的具体内容是:
workdir /tmp/Rserv
remote enable
fileio enable
interactive yes
port 6311
maxinbuf 262144
encoding utf8
control enable
source start.R
plaintext enable
start.R的具体内容是:
cat("This is my Rserve!!",'\n');
print(paste("Server start at",Sys.time()))
3.4、然后将这两个文件放在命令行启动的路径下,我的是C:\Users\77
3.5、再尝试查看Rserve配置,你可能会看到:
C:\Users\77>R CMD Rserve --RS-settings
Rserve v1.7-3

config file: Rserv.cfg
working root: /tmp/Rserv
port: 6311
local socket: [none, TCP/IP used]
authorization required: no
plain text password: allowed
passwords file: [none]
allow I/O: yes
allow remote access: yes  (这里看到配置成功了!)
control commands: yes
interactive: yes
max.input buffer size: 262144 kB
4、在命令行启动Rserve服务器(也可以在R原生命令窗口用Rserve()函数启动Rserve服务器)。
这是我们查看电脑的“任务管理器”,能查到Rserve这个服务的话证明Rserve配置完成并成功启动。
5、如果是在本机配置启动Rserve,那么在Tableau的“管理R连接”中服务器填写“localhost”,默认端口“6311”
点击连接,你应该能够看到“成功连接到Rserve服务”。
这里有个重要的提醒:由于Tableau使用的授权费用太高,所以国内目前多数个人采用时间驻留器延长试用时间,这会影响Tableau的多个端口的配置,导致端口异常,对于Rserve而言,6311端口无法使用,等于自己到家门口,门锁坏了一样。
所以,如果前面的步骤都是对的,但仍然出现“服务器繁忙或未启用或没有权限访问……”之类的异常报错,将时间驻留器移除掉,你可能就解决了问题。
因为我就是这样解决的。
希望对大家有用!感谢看完我的描述!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 08:25 , Processed in 0.025497 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表