Как я могу управлять Rserve командой RSserverSource?

Я пытаюсь создать распределенную среду на Windows, которая опиралась только на R, поэтому я решил изучить Rserve и RSclient. Однако мой RSclient не может управлять Rserve с помощью команды RS.server.source().

Я пробовал несколько вариантов этого, но ни один из них, кажется, не работает.

1. После прочтения документов ниже

http://cran.r-project.org/web/packages/RSclient/RSclient.pdf

http://cran.r-project.org/web/packages/Rserve/Rserve.pdf

Я проверил мои --RS-настройки в DOS, и это показывает, что мой Rserve является контролируемым.

>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

Поэтому я использую команду R CMD Rserve, чтобы открыть мой Rserve. Это источник моего "start.R", поэтому мои настройки работают.

CMD:

>R CMD Rserve
[1] "Server start at 2017-11-18 12:55:01"
Rserve: Ok, ready to answer queries.

Мой "start.R":

print(paste("Server start at",Sys.time()))

Затем я успешно подключаю Rserve, но RS.server.source () и RS.server.shutdown() не работают, все они показывают, что управляющие команды отключены.

system('tasklist /FI "IMAGENAME eq Rserve.exe"')

library(RSclient)
c1<-RS.connect(host="172.30.8.40")

RS.server.source(c1,'E:/RS/test.r')
RS.server.shutdown(c1)

RS.close(c1)

Я отключаю Rserve и пробовал старые команды RSconnect (), RSserverSource () и RSshutdown ().

library(RSclient)
c2<-RSconnect(host="172.30.8.40")

RSserverSource(c2,'E:/RS/test.r')
RSshutdown(c2)

system('tasklist /FI "IMAGENAME eq Rserve.exe"')

На этот раз RSshutdown работает и выключает мой сервер, но команда Source все еще возвращает ERROR.

Ошибка изображения

2. Я посмотрел на вызов rserve из тайм-аута rclient и попытался открыть Rserve в RStudio. Вот мои коды.

library(Rserve)
library(RSclient)

Rserve(port=6311,args="--RS-enable-control --RS-enable-remote")
rsc <- RSconnect(port = 6311)

system('tasklist /FI "IMAGENAME eq Rserve.exe"')

RSserverSource(rsc,"E:/RS/test.R")
RSshutdown(rsc)

system('tasklist /FI "IMAGENAME eq Rserve.exe"')

Аналогично, команда выключения работает, в то время как исходная команда возвращает ошибку.

Ошибка изображения

PS

Я дважды проверил, что "test.r" существует, и я только хочу правильно использовать команду RS.server.source или RSserverSource, я протестировал команду выключения только потому, что они также требуют полномочий управления с моей точки зрения.

После долгого поиска в сети возникло несколько вопросов о RSserverSource (единственный вопрос до сих пор не решен). Пожалуйста, помогите или дайте несколько идей, как этого добиться. Большое спасибо!

0 ответов

Другие вопросы по тегам