我正在尝试通过makePSOCKcluster连接到另一台计算机:
library(parallel)
cl <- makePSOCKcluster('10.0.0.107')
不幸的是它挂了。我已经在ssh-keygen的帮助下完成了无密码登录,并且控制台中的ssh命令可以在两台计算机上运行。
我也尝试过:
cl <- makePSOCKcluster('10.0.0.107', outfile = '')
并收到以下错误:
starting worker pid=2937 on blabla:11225 at 17:41:20.364
Error in socketConnection(master, port = port, blocking = TRUE, open = "a+b", :
cannot open the connection
Calls: <Anonymous> ... doTryCatch -> recvData -> makeSOCKmaster -> socketConnection
In addition: Warning message:
In socketConnection(master, port = port, blocking = TRUE, open = "a+b", :
blabla:11225 cannot be opened
Execution halted
然后Steve Weston的answer建议我尝试了手动模式。我一步一步地调试slaveRSOCK
函数。我被困住了:
Error in socketConnection(master, port = port, blocking = TRUE, open = "a+b", :
cannot open the connection
In addition: Warning message:
In socketConnection(master, port = port, blocking = TRUE, open = "a+b", :
blabla:11225 cannot be opened
我还尝试使用
打开任何端口sudo iptables -A INPUT -p tcp --dport 11000 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 11000 -j ACCEPT
它在两台计算机上都有变化。
在两台笔记本电脑上,我都有相同版本的R(R.3.2.2)和parallel
包。一台计算机有Ubuntu 14.04,另一台有Kubuntu 14.04。
请帮忙。
答案 0 :(得分:0)
在计算机1 上打开一个端口进行收听
sudo nc -l <portnumber>
并将终端打开
从另一个终端检查netstat -an |grep <portnumber> |grep LISTEN
是否将端口显示为 LISTENING
,运行nc machine1 <portnumber>
,看看您是否能够连接并输入内容
如果以上工作正常,那么您的路由器设置是正确的。
该问题有90%的可能性是由路由器和防火墙设置引起的。