2013-01-31 13 views
7

Sto provando a eseguire l'analisi in parallelo su R su un cluster AWS EC2. Sto usando starcluster per impostare e gestire il cluster EC2 e sto cercando di usare snow e foreach in R. Per iniziare, ho 2 nodi nel cluster, 1 master e 1 worker.R e neve su Amazon EC2 utilizzando starcluster

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 

ho poi inizio R e caricare il pacchetto snow e cercare di creare un cluster oggetto.

R 
library("snow") 

cl = makeCluster(c("masterIP.compute-1.amazonaws.com", "node001IP.compute-1.amazonaws.com"), type = "SOCK") 

Questo, tuttavia, mi dà il seguente messaggio di errore:

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). 

Così ho provato a copiare la mia chiave SSH (keyname.rsa per essere precisi) per il file .ssh su EC2 e provare di nuovo. Ciò non funzionava ancora; Ho ricevuto lo stesso errore Permission denied (publickey).. Ho pensato che Starcluster abbia gestito l'installazione di ssh e la comunicazione tra i nodi, quindi sono un po 'confuso sul perché non sono in grado di configurarlo. Ho anche provato ad aggiungere solo node001, quindi cl = makeCluster(c("node001IP.compute-1.amazonaws.com"), type = "SOCK"), ma si verifica lo stesso errore.

risposta

2

Si scopre, dopo molti tentativi, che tutto ciò che era necessario era un aggiornamento alla versione R 2.15. Il comando cl = makeCluster(c("masterIP.compute-1.amazonaws.com", "node001IP.compute-1.amazonaws.com"), type = "SOCK") ha funzionato perfettamente dopo.