R和雪在亚马逊EC2使用starcluster

use*_*057 7 r amazon-ec2 amazon-web-services

我正在尝试在AWS EC2集群上以R并行运行分析.我正在使用starcluster来设置和管理EC2集群,我正在尝试使用snowforeach在R中.首先,我在集群中有2个节点,1个主节点和1个工作节点.

starcluster start mycluster 
starcluster listinstances

-----------------------------------------
mycluster (security group: @sc-mycluster)
-----------------------------------------
....
Cluster nodes:
     master running i-xxxxxxxxx masterIP.compute-1.amazonaws.com
    node001 running i-xxxxxxxxx node001IP.compute-1.amazonaws.com
Total nodes: 2

starcluster sshmaster mycluster
Run Code Online (Sandbox Code Playgroud)

然后我启动R并加载snow包并尝试创建一个集群对象.

R
library("snow")

cl = makeCluster(c("masterIP.compute-1.amazonaws.com", "node001IP.compute-1.amazonaws.com"), type = "SOCK")
Run Code Online (Sandbox Code Playgroud)

但是,这会给我以下错误消息:

The authenticity of host 'masterIP.compute-1.amazonaws.com (xx.xxx.xx.xx)' can't be established.
ECDSA key fingerprint is xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'masterIP.compute-1.amazonaws.com,xx.xxx.xx.xx' (ECDSA) to the list of known hosts.
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)

所以我尝试将我的ssh密钥(keyname.rsa具体)复制到EC2上的.ssh文件并再次尝试.那还是行不通; 我收到了同样的 Permission denied (publickey).错误.我认为starcluster处理节点之间的ssh和通信的设置,所以我有点困惑为什么我无法设置它.我也试图添加node001,所以cl = makeCluster(c("node001IP.compute-1.amazonaws.com"), type = "SOCK"),但同样的错误发生.

use*_*057 2

事实证明,经过多次修补后,所需要的只是更新到 R 版本 2.15。cl = makeCluster(c("masterIP.compute-1.amazonaws.com", "node001IP.compute-1.amazonaws.com"), type = "SOCK")此后该命令完美运行。