与我之前的similar SO question相比,我尝试使用AWS上的降雪/降雪来进行并行计算。在R中用于并行处理的雪(和降雪)用于并行处理
我所做的是:
- 在
sfInit()
功能,我提供的公共DNS来socketHosts
参数,像这样sfInit(parallel=TRUE,socketHosts =list("ec2-00-00-00-000.compute-1.amazonaws.com"))
- 错误返回
Permission denied (publickey)
- 然后我跟着指示(我假设正确!)http://www.imbi.uni-freiburg.de/parallel/在'无密码安全外壳(SSH)登录'部分
- 我只是猫的.pem文件的内容我crea将AWS连接到AWS实例的〜/ .ssh/authorized_keys我想从我的主AWS实例和主AWS实例连接到
有什么我错过了吗? 如果用户可以分享他们在AWS上使用雪的经验,我将不胜感激。
非常感谢您的建议。
更新: 我只是想更新我发现我的具体问题的解决方案:
- 我用StarCluster设置我的AWS集群:StarCluster
- 安装包
snowfall
集群中所有节点上 - 从主节点发出以下命令
hostslist <- list("ec2-xxx-xx-xxx-xxx.compute-1.amazonaws.com","ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com")
sfInit(parallel=TRUE, cpus=2, type="SOCK",socketHosts=hostslist)
l <- sfLapply(1:2,function(x)system("ifconfig",intern=T))
lapply(l,function(x)x[2])
sfStop()
- IP信息证实了AWS节点正在使用
我相信.pem文件是一个X509证书,而不是RSA公钥。如本节所述,您应该在主节点上生成密钥对,并将公钥复制到从节点的authorized_keys。 – Anatoliy
我相信@Anatoliy是正确的;他应该回答这个问题,而不仅仅是一个评论,所以我们可以赞成。 :) – Iterator
也许我在你的另一个关于“使用StarCluster”的问题上忽略了我的答案,就像我现在看到的那样,但是在私有IP范围内运行整个集群时,我没有必要在启动后大声使用密钥或证书这样做。 – Thell