Rのみに依存するWindows上で分散環境を構築しようとしていますので、RserveとのRSclientを学習することを選択しました。しかし、私のRSclientは、RS.server.source()コマンドでRserveを制御できません。コマンドRSserverSourceでRserveを制御するにはどうすればよいですか?
私はこれを複数試してみましたが、どれもうまくいかないようです。
1.
http://cran.r-project.org/web/packages/RSclient/RSclient.pdf
http://cran.r-project.org/web/packages/Rserve/Rserve.pdf
下の文書を読んだ後、私はDOSで私--RS-設定をチェックし、それは私の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
私はRserveを開くためにR CMD 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は動作し、それが私のサーバーをダウンになりますが、ソースコマンドは、まだエラーを返します。
2.私はinvoke rserve from rclient timeout stuckを見て、私はRStudioでRserveを開こうとしました。ここに私のコードがあります。
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"')
同様に、shutdownコマンドは、sourceコマンドがエラーを返す間に機能します。
P.S.
「test.r」が存在することを二重にチェックしましたが、RS.serverコマンドだけを使用したいと思います。ソースまたはRSserverSourceが正常に動作するかどうかを確認するために、シャットダウンコマンドをテストしました。
ネットで長い時間を検索した後、RSserverSourceに関する質問はほとんどありません(唯一の解決策はまだ解決されていません)。助けてください、または達成するためにいくつかのアイデアを与えてください。とても大変です!