7

In relazione al mio precedente similar SO question, ho provato a utilizzare Snow/Snowfall su AWS per il calcolo parallelo.Utilizzo di neve (e nevicate) con AWS per elaborazione parallela in R

Quello che ho fatto è stato:

  • Nella funzione sfInit(), ho fornito il DNS pubblico per socketHosts parametro in questo modo sfInit(parallel=TRUE,socketHosts =list("ec2-00-00-00-000.compute-1.amazonaws.com"))
  • L'errore riscontrato è Permission denied (publickey)
  • Poi ho seguito le istruzioni (I presumere correttamente!) su http://www.imbi.uni-freiburg.de/parallel/ nella sezione 'login senza password Secure Shell (SSH)'
  • Ho appena cat il contenuto del file .pem che creo ted sul AWS in ~/.ssh/authorized_keys dell'istanza AWS voglio collegare a dal mio maestro esempio AWS e per il master esempio AWS così

C'è qualcosa che mi manca fuori? Sarei molto grato se gli utenti possano condividere le loro esperienze sull'uso della neve su AWS.

Grazie mille per i vostri suggerimenti.

UPDATE: Volevo solo aggiornare la soluzione che ho trovato al mio problema specifico:

  • ho usato Starcluster installare il mio gruppo AWS: StarCluster
  • pacchetto installato snowfall su tutti i nodi del cluster
  • Dal nodo master rilasciato i seguenti comandi
  • 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()
  • le informazioni IP ha confermato che i nodi AWS venivano utilizzati
+2

Credo che il file .pem sia un certificato X509, non una chiave pubblica RSA. Dovresti generare la coppia di chiavi sul nodo master, come descritto nella sezione, e copiare la chiave pubblica sui authorized_keys dei nodi slave. – Anatoliy

+0

Credo che @Anatoliy sia corretto; dovrebbe dare una risposta a questo, piuttosto che un semplice commento, così possiamo fare un voto. :) – Iterator

+0

Forse trascuro la mia risposta sulla tua altra domanda riguardante "usa StarCluster" come ora vedo, ma dai una possibilità di eseguire l'intero cluster nell'intervallo IP privato, non ho avuto bisogno di confondere chiavi o certificati una volta che ho iniziato facendo questo. – Thell

risposta

1

credo @Anatoliy è corretto: stai usando un certificato X.509. Per i passaggi precisi da eseguire per aggiungere le chiavi SSH, consultare la sezione "Tipi di credenziali" di EC2 Starters Guide.

Per caricare le proprie chiavi SSH, dare un'occhiata a this page from Alestic.

All'inizio è un po 'confuso, ma è necessario tenere a mente quali sono le chiavi di accesso, i certificati e le coppie di chiavi, che possono apparire nei file di testo con DSA o RSA.

+0

Grazie per i collegamenti. In qualche modo questo si sta rivelando più peloso di quanto mi aspettassi. – harshsinghal

+0

Diventa più facile, ma non grazie ai materiali introduttivi di Amazon: generalmente hanno senso solo dopo che una persona domina tutto. Alestic è un buon sito per sapere. – Iterator

+1

Cosa ne pensi di http://web.mit.edu/stardev/cluster/docs/0.92rc2/quickstart.html? – harshsinghal

2

aspetto non così male, ma il file PEM è sbagliato. Ma a volte non è così semplice e molte persone devono combattere con questi problemi. Un sacco di consigli si possono trovare in questo post:

Dalla mia esperienza la maggior parte delle persone hanno problemi in questi passaggi:

  • Puoi accedere al macchine via SSH? (ssh ec2-00-00-00-000.compute-1.amazonaws.com). Prova a utilizzare il DNS pubblico, non l'IP pubblico da connettere.
  • Dovresti controllare i "Gruppi di sicurezza" in AWS se la porta 22 è aperta per tutte le macchine!

Se si prevede di avviare più di 10 macchine worker si dovrebbe lavorare su un impianto di MPI sulle vostre macchine (molto meglio delle prestazioni!)

Markus da cloudnumbers.com :-)

+0

Posso ssh nei nodi slave e tutte le macchine appartengono allo stesso gruppo di sicurezza. Anche io uso il DNS pubblico per connettermi. – harshsinghal