我正在尝试通过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。请帮忙。
最佳答案
打开机器1上的端口以进行监听sudo nc -l <portnumber>
并保持终端打开
从另一个终端检查netstat -an |grep <portnumber> |grep LISTEN
是否将端口显示为LISTENING
在计算机2上,运行nc machine1 <portnumber>
并查看u是否能够连接并键入内容
如果以上方法都可以,则您的路由器设置正确。
该问题有90%的可能性是由于路由器和防火墙设置引起的。