将snow(和snowfall)与AWS一起用于R中的并行处理
与我之前的研究相比,我尝试在AWS上使用snow/snowfall进行并行计算 我所做的是:将snow(和snowfall)与AWS一起用于R中的并行处理,r,parallel-processing,amazon-web-services,snowfall,starcluster,R,Parallel Processing,Amazon Web Services,Snowfall,Starcluster,与我之前的研究相比,我尝试在AWS上使用snow/snowfall进行并行计算 我所做的是: 在sfInit()函数中,我向socketHosts参数提供了公共DNS,如下所示 sfInit(parallel=TRUE,socketHosts=list(“ec2-00-00-00-000.compute-1.amazonaws.com”) 返回的错误是权限被拒绝(公钥) 然后,我按照“无密码安全Shell(SSH)登录”部分中的说明(我猜是正确的!)进行操作 我只是将我在AWS上创建的.pem
- 在
函数中,我向sfInit()
参数提供了公共DNS,如下所示socketHosts
sfInit(parallel=TRUE,socketHosts=list(“ec2-00-00-00-000.compute-1.amazonaws.com”)
- 返回的错误是
权限被拒绝(公钥)
- 然后,我按照“无密码安全Shell(SSH)登录”部分中的说明(我猜是正确的!)进行操作
- 我只是将我在AWS上创建的.pem文件的内容放入我要从主AWS实例连接到的AWS实例以及主AWS实例的~/.ssh/authorized_密钥中
- 我使用StarCluster设置AWS群集:
- 已在群集的所有节点上安装软件包
snowfall
- 从主节点发出以下命令
hostslist看起来没那么糟糕,但是pem文件是错误的。但有时并不是那么简单,许多人不得不为这个问题而斗争。你可以在这篇文章中找到很多提示:
- 或者查看谷歌的其他帖子
- 您可以通过ssh登录到机器上吗?(ssh ec2-00-00-00-000.compute-1.amazonaws.com)。尝试使用公共DNS,而不是公共IP进行连接
- 如果22端口对所有机器开放,您应该在AWS中检查“安全组”李>
cloudnumbers.com上的Markus:-)我相信@Anatoliy是正确的:您使用的是X.509证书。有关添加SSH密钥的确切步骤,请参阅的“凭据类型”部分 要上传您自己的SSH密钥,请查看
一开始有点让人困惑,但您需要弄清楚哪些是访问密钥、证书和密钥对,它们可能出现在带有DSA或RSA的文本文件中。我相信.pem文件是X509证书,而不是RSA公钥。您应该在主节点上生成密钥对,如本节所述,并将公钥复制到从节点的授权密钥。我相信@Anatoliy是正确的;他应该对此作出回答,而不仅仅是发表评论,这样我们就可以投票了也许不考虑我对你关于“使用StarCluster”的另一个问题的回答,正如我现在看到的那样,但是试一试在私有IP范围内运行整个集群,一旦我开始这样做,我就不必为密钥或证书操心了。我可以通过ssh连接到从属节点,并且所有机器都属于同一个安全组。我也使用公共DNS进行连接。谢谢链接。不知何故,这比我想象的要复杂得多。这变得容易了,但这并不是因为亚马逊的介绍材料——它们通常只有在一个人掌握了一切之后才有意义。Alestic是一个很好的网站。你认为呢?仅供将来参考,StarCluster有一个“createkey”命令,可以为你创建一个新的EC2密钥对:$StarCluster createkey mykey-o~/.ssh/ec2key.rsa