Uso de nieve (y nevadas) con AWS para el procesamiento paralelo en R
-
27-10-2019 - |
Pregunta
En relación con mi pregunta de SO similar anterior, intenté usando nieve / nevadas en AWS para computación paralela.
Lo que hice fue:
- En la función
sfInit()
, proporcioné el DNS público al parámetrosocketHosts
asísfInit(parallel=TRUE,socketHosts =list("ec2-00-00-00-000.compute-1.amazonaws.com"))
- El error devuelto fue
Permission denied (publickey)
- Seguí las instrucciones (¡supongo que correctamente!) en http:// www. imbi.uni-freiburg.de/parallel/ en la sección 'Inicio de sesión de Secure Shell sin contraseña (SSH)'
- Simplemente coloco el contenido del archivo .pem que creé en AWS en ~ / .ssh / allowed_keys de la instancia de AWS a la que quiero conectarme desde mi instancia maestra de AWS y también para la instancia maestra de AWS
¿Hay algo que me esté perdiendo? Estaría muy agradecido si los usuarios pudieran compartir sus experiencias en el uso de nieve en AWS.
Muchas gracias por sus sugerencias.
ACTUALIZAR: Solo quería actualizar la solución que encontré para mi problema específico:
- Usé StarCluster para configurar mi clúster de AWS: StarCluster
- Se instaló el paquete
snowfall
en todos los nodos del clúster - Desde el nodo maestro emitió los siguientes comandos
-
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()
- La información de IP confirmó que se estaban utilizando los nodos de AWS
Solución
Creo que @Anatoliy tiene razón: estás usando un certificado X.509.Para conocer los pasos precisos a seguir para agregar las claves SSH, consulte la sección "Tipos de credenciales" de Guía de inicio de EC2 .
Para subir sus propias claves SSH, consulte esta página de Alestic .
Es un poco confuso al principio, pero querrá aclarar cuáles son sus claves de acceso, sus certificados y sus pares de claves, que pueden aparecer en archivos de texto con DSA o RSA.
Otros consejos
No se ve tan mal, pero el archivo pem es incorrecto.Pero a veces no es tan simple y muchas personas tienen que luchar con estos problemas.Puedes encontrar muchos consejos en esta publicación:
- https://forums.aws.amazon.com/message.jspa?messageID= 241341
- O busque otras publicaciones en Google.
Según mi experiencia, la mayoría de las personas tienen problemas en estos pasos:
- ¿Puede iniciar sesión en las máquinas a través de ssh?(ssh ec2-00-00-00-000.compute-1.amazonaws.com).Intente utilizar el DNS público, no la IP pública para conectarse.
- ¡Debe verificar sus "Grupos de seguridad" en AWS si el puerto 22 está abierto para todas las máquinas!
Si planea iniciar más de 10 máquinas trabajadoras, debería trabajar en una instalación de MPI en sus máquinas (¡rendimiento mucho mejor!)
Markus de cloudnumbers.com :-)