在 AWS 中使用雪(和降雪)在 R 中进行并行处理
Posted
技术标签:
【中文标题】在 AWS 中使用雪(和降雪)在 R 中进行并行处理【英文标题】:Using snow (and snowfall) with AWS for parallel processing in R 【发布时间】: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 范围内运行整个集群,我不需要对密钥大惊小怪或证书,一旦我开始这样做。 【参考方案1】:看起来还不错,但 pem 文件有误。但有时并不是那么简单,很多人不得不与这个问题作斗争。您可以在这篇文章中找到很多提示:
https://forums.aws.amazon.com/message.jspa?messageID=241341 或查看谷歌的其他帖子。根据我的经验,大多数人在这些步骤中都会遇到问题:
可以通过 ssh 登录机器吗? (ssh ec2-00-00-00-000.compute-1.amazonaws.com)。尝试使用公共 DNS,而不是公共 IP 进行连接。 如果 22 端口对所有机器开放,您应该检查 AWS 中的“安全组”!如果您计划启动 10 台以上的工作机器,您应该在您的机器上安装 MPI(性能要好得多!)
来自 cloudnumbers.com 的 Markus :-)
【讨论】:
我可以ssh进入从节点,所有机器都属于同一个安全组。我也使用公共 DNS 进行连接。【参考方案2】:我相信@Anatoliy 是正确的:您使用的是 X.509 证书。有关添加 SSH 密钥的具体步骤,请查看EC2 Starters Guide 的“凭据类型”部分。
要上传您自己的 SSH 密钥,请查看 this page from Alestic。
一开始有点混乱,但您需要清楚哪些是您的访问密钥、证书和密钥对,它们可能会出现在带有 DSA 或 RSA 的文本文件中。
【讨论】:
感谢您的链接。不知何故,这比我预期的要多毛。 它变得更容易了,但不感谢亚马逊的介绍材料——它们通常只有在一个人掌握了一切之后才有意义。 Alestic 是一个值得了解的好网站。 你觉得web.mit.edu/stardev/cluster/docs/0.92rc2/quickstart.html怎么样? 仅供参考,StarCluster 有一个“createkey”命令将为您创建一个新的 EC2 密钥对:$ starcluster createkey mykey -o ~/.ssh/ec2key.rsa
以上是关于在 AWS 中使用雪(和降雪)在 R 中进行并行处理的主要内容,如果未能解决你的问题,请参考以下文章