在 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 中进行并行处理的主要内容,如果未能解决你的问题,请参考以下文章

R 降雪:并行应用于表格列

使用降雪包并行化 R 代码

R降雪环境问题

R中的平行回归(可能有降雪)

在 R 中使用降雪包做一些模拟

与降雪库并行化的结果不可重现?