Как я могу управлять 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 (единственный вопрос до сих пор не решен). Пожалуйста, помогите или дайте несколько идей, как этого добиться. Большое спасибо!