Utilizzo di neve (e nevicate) con AWS per l'elaborazione parallela in R
-
27-10-2019 - |
Domanda
In relazione alla mia precedente domanda SO simile , ho provato utilizzo di neve / nevicata su AWS per il calcolo parallelo.
Quello che ho fatto è stato:
- Nella funzione
sfInit()
, ho fornito il DNS pubblico al parametrosocketHosts
in questo modosfInit(parallel=TRUE,socketHosts =list("ec2-00-00-00-000.compute-1.amazonaws.com"))
- L'errore restituito era
Permission denied (publickey)
- Ho quindi seguito le istruzioni (presumo correttamente!) su http:// www. imbi.uni-freiburg.de/parallel/ nella sezione "Accesso SSH (Passwordless Secure Shell)"
- Ho semplicemente inserito il contenuto del file .pem che ho creato su AWS nelle ~ / .ssh / authorized_keys dell'istanza AWS a cui voglio connettermi dalla mia istanza AWS master e anche per l'istanza AWS master
C'è qualcosa che mi sto perdendo? Sarei molto grato se gli utenti potessero condividere le loro esperienze nell'uso della neve su AWS.
Grazie mille per i tuoi suggerimenti.
AGGIORNAMENTO: Volevo solo aggiornare la soluzione che ho trovato per il mio problema specifico:
- Ho utilizzato StarCluster per configurare il mio cluster AWS: StarCluster
- Pacchetto installato
snowfall
su tutti i nodi del cluster - Dal nodo master ha emesso 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 sull'ip hanno confermato che i nodi AWS venivano utilizzati
Soluzione
Credo che @Anatoliy abbia ragione: stai usando un certificato X.509.Per i passaggi precisi da eseguire per aggiungere le chiavi SSH, guarda la sezione "Tipi di credenziali" di Guida introduttiva a EC2 .
Per caricare le tue chiavi SSH, dai un'occhiata a questa pagina di Alestic .
All'inizio crea un po 'di confusione, ma ti consigliamo di tenere ben chiaro quali sono le tue chiavi di accesso, i tuoi certificati e le tue coppie di chiavi, che possono apparire nei file di testo con DSA o RSA.
Altri suggerimenti
Non sembra poi così male ma il file pem è sbagliato.Ma a volte non è così semplice e molte persone devono combattere con questi problemi.Molti suggerimenti che puoi trovare in questo post:
- https://forums.aws.amazon.com/message.jspa?messageID= 241341
- Oppure cerca altri post su Google.
In base alla mia esperienza, la maggior parte delle persone ha problemi in questi passaggi:
- Puoi accedere alle macchine tramite ssh?(ssh ec2-00-00-00-000.compute-1.amazonaws.com).Prova a utilizzare il DNS pubblico, non l'IP pubblico per connetterti.
- Dovresti controllare i tuoi "Gruppi di sicurezza" in AWS se la porta 22 è aperta per tutte le macchine!
Se prevedi di avviare più di 10 macchine worker, dovresti lavorare su un'installazione MPI sulle tue macchine (prestazioni molto migliori!)
Markus di cloudnumbers.com :-)