【发布时间】:2011-11-12 02:59:53
【问题描述】:
关于我之前的 similar SO question ,我尝试在 AWS 上使用 snow/snowfall 进行并行计算。
我所做的是:
- 在
sfInit()函数中,我将公共DNS 提供给socketHosts参数,如下所示sfInit(parallel=TRUE,socketHosts =list("ec2-00-00-00-000.compute-1.amazonaws.com")) - 返回的错误是
Permission denied (publickey) - 然后我按照“无密码安全外壳 (SSH) 登录”部分中 http://www.imbi.uni-freiburg.de/parallel/ 上的说明(我认为是正确的!)
- 我只是将我在 AWS 上创建的 .pem 文件的内容放入我想要从我的主 AWS 实例和主 AWS 实例连接的 AWS 实例的 ~/.ssh/authorized_keys 中李>
我有什么遗漏的吗? 如果用户可以分享他们在 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 是正确的;他应该对此做出回答,而不仅仅是评论,这样我们就可以投票了。 :)
-
也许忽略我对您关于“使用 StarCluster”的其他问题的回答,就像我现在看到的那样,但是试一试在私有 IP 范围内运行整个集群,我不需要对密钥大惊小怪或证书,一旦我开始这样做。
标签: r parallel-processing amazon-web-services snowfall starcluster