Usar nieve(y nevada) con AWS para procesamiento paralelo en R
parallel-processing amazon-web-services (2)
Creo que @Anatoliy es correcto: estás usando un certificado X.509. Para obtener los pasos precisos para agregar las claves SSH, consulte la sección "Tipos de credenciales" de la Guía de inicio de EC2 .
Para cargar sus propias claves SSH, eche un vistazo a esta página de Alestic .
Es un poco confuso al principio, pero querrá mantener en claro 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.
En relación con mi pregunta SO similar anterior, traté de usar nieve / nieve en AWS para computación paralela.
Lo que hice fue:
- En la función
sfInit()
, proporcioné el DNS público al parámetrosocketHosts
comosfInit(parallel=TRUE,socketHosts =list("ec2-00-00-00-000.compute-1.amazonaws.com"))
- El error devuelto fue
Permission denied (publickey)
- Luego seguí las instrucciones (¡supongo que correctamente!) En http://www.imbi.uni-freiburg.de/parallel/ en la sección ''Inicio de sesión seguro Shell sin contraseña (SSH)''
- Acabo de catalogar el contenido del archivo .pem que creé en AWS en las ~ / .ssh / authorized_keys de la instancia de AWS a la que me quiero conectar desde mi instancia maestra de AWS y también para la instancia maestra de AWS
¿Hay algo que me estoy perdiendo? Estaría muy agradecido si los usuarios pueden compartir sus experiencias en el uso de la nieve en AWS.
Muchas gracias por sus sugerencias.
ACTUALIZACIÓN: solo quería actualizar la solución que encontré a mi problema específico:
- Usé StarCluster para configurar mi clúster de AWS: StarCluster
- Nevadas del paquete instalado 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 los nodos de AWS se estaban utilizando
No parece tan malo, pero el archivo pem es incorrecto. Pero a veces no es tan simple y muchas personas tienen que luchar con este problema. Un montón de consejos que puedes encontrar en esta publicación:
- https://forums.aws.amazon.com/message.jspa?messageID=241341
- O consulte google para otras publicaciones.
Según mi experiencia, la mayoría de las personas tiene 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). Intenta usar el DNS público, no la IP pública para conectarte.
- ¡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 de trabajo, debería trabajar en una instalación de MPI en sus máquinas (¡un rendimiento mucho mejor!)
Markus de cloudnumbers.com :-)