Conectarse al nodo principal mediante SSH - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Conectarse al nodo principal mediante SSH

Secure Shell (SSH) es un protocolo de red que puede utilizar para crear una conexión segura a un equipo remoto. Después de realizar una conexión, el terminal en su equipo local se comporta como si se estuviera ejecutando en el equipo remoto. Los comandos que emita a nivel local se ejecutan en el equipo remoto y la salida de comandos desde el equipo remoto aparece en la ventana del terminal.

Cuando usa SSH con AWS, se conecta a una instancia EC2, que es un servidor virtual que se ejecuta en la nube. Al trabajar con Amazon EMR, el uso más común de SSH consiste en conectarse a la instancia de EC2 que actúa como nodo principal del clúster.

El uso de SSH para conectarse al nodo principal le ofrece la posibilidad de monitorizar e interactuar con el clúster. Puede emitir comandos de Linux en el nodo principal, ejecutar aplicaciones como, por ejemplo, Hive y Pig de forma interactiva, examinar directorios, leer archivos de registro, etc. También puede crear un túnel en la conexión SSH para ver las interfaces web alojadas en el nodo principal. Para obtener más información, consulte Ver las interfaces web alojadas en clústeres de Amazon EMR.

Para conectar con el nodo principal mediante SSH, necesita el nombre de DNS público del nodo principal. Además, el grupo de seguridad asociado al nodo principal debe tener una regla de entrada que permita el tráfico SSH (puerto TCP 22) desde un origen que incluya el cliente donde se origina la conexión SSH. Es posible que tenga que añadir una regla para permitir una conexión SSH de su cliente. Para obtener más información sobre la modificación de las reglas de los grupos de seguridad, consulte Control del tráfico de red con grupos de seguridad Añadir reglas a un grupo de seguridad en la Guía del usuario de Amazon EC2.

Recuperar el nombre de DNS público del nodo principal

Puede recuperar el nombre de DNS público principal utilizando la consola de Amazon EMR y la AWS CLI.

nota

Hemos rediseñado la consola de Amazon EMR para que sea más fácil de utilizar. Consulte Consola Amazon EMR para obtener información sobre las diferencias entre la consola antigua y la nueva.

New console
Para recuperar el nombre de DNS público del nodo principal con la nueva consola
  1. Inicie sesión en la AWS Management Console consola Amazon EMR y ábrala en https://console.aws.amazon.com/emr.

  2. En EMR en EC2, en el panel de navegación izquierdo, seleccione Clústeres y seleccione el clúster en el que desee recuperar el nombre de DNS público.

  3. Anote el valor del DNS público del nodo principal en la sección Resumen de la página de detalles del clúster.

Old console
Para recuperar el nombre de DNS público del nodo principal con la consola antigua
  1. Vaya hasta la nueva consola de Amazon EMR y seleccione Ir a la consola antigua en el panel de navegación lateral. Para más información sobre lo que puede esperar al cambiar a la consola antigua, consulte Uso de la consola antigua.

  2. En la página Cluster List (Lista de clústeres), seleccione el enlace para el clúster.

  3. Tenga en cuenta el valor del DNS público principal que aparece en la sección Resumen de la página de detalles del clúster.

    nota

    También puede elegir el enlace SSH para obtener instrucciones sobre cómo crear una conexión SSH con el nodo principal.

CLI
Para recuperar el nombre de DNS público del nodo principal con el AWS CLI
  1. Para recuperar el identificador del clúster, escriba el siguiente comando.

    aws emr list-clusters

    La salida enumera los clústeres, incluidos los ID de los clústeres. Tenga en cuenta el ID del clúster al que se está conectando.

    "Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "NormalizedInstanceHours": 4, "Id": "j-2AL4XXXXXX5T9", "Name": "My cluster"
  2. Para obtener una lista de las instancias de clúster incluido el nombre de DNS público para el clúster, escriba uno de los siguientes comandos. Sustituya j-2AL4XXXXXX5T9 por el ID del clúster devuelto por el comando anterior.

    aws emr list-instances --cluster-id j-2AL4XXXXXX5T9

    O bien:

    aws emr describe-cluster --cluster-id j-2AL4XXXXXX5T9

    La salida enumera las instancias de clúster, incluidos nombres de DNS y las direcciones IP. Anote el valor para PublicDnsName.

    "Status": { "Timeline": { "ReadyDateTime": 1408040779.263, "CreationDateTime": 1408040515.535 }, "State": "RUNNING", "StateChangeReason": {} }, "Ec2InstanceId": "i-e89b45e7", "PublicDnsName": "ec2-###-##-##-###.us-west-2.compute.amazonaws.com" "PrivateDnsName": "ip-###-##-##-###.us-west-2.compute.internal", "PublicIpAddress": "##.###.###.##", "Id": "ci-12XXXXXXXXFMH", "PrivateIpAddress": "###.##.#.###"

Para más información, consulte Comandos de Amazon EMR en la AWS CLI.

Conectarse al nodo principal mediante SSH y una clave privada de Amazon EC2 en Linux, Unix y Mac OS X

Para crear una conexión SSH autenticada con un archivo de clave privada, tendrá que especificar la clave privada del par de claves de Amazon EC2 al lanzar un clúster. Para obtener más información sobre el acceso a su par de claves, consulte los pares de claves de Amazon EC2 en la Guía del usuario de Amazon EC2.

Su equipo Linux muy probablemente incluye un cliente SSH de forma predeterminada. Por ejemplo, OpenSSH está instalado en la mayoría de los sistemas operativos Linux, Unix y macOS. Puede comprobar si tiene un cliente SSH escribiendo ssh en la línea de comandos. Si su equipo no reconoce el comando, instale un cliente SSH para conectarse al nodo principal. El proyecto OpenSSH ofrece una implementación gratuita de toda la suite de herramientas de SSH. Para obtener más información, consulte el sitio web OpenSSH.

Las siguientes instrucciones muestran la apertura de una conexión SSH al nodo principal de Amazon EMR en Linux, Unix y Mac OS X.

Para configurar los permisos de archivo de clave privada del par de claves

Antes de poder utilizar la clave privada del par de claves de Amazon EC2 para crear una conexión SSH, debe establecer permisos en el archivo .pem de modo que solo el propietario de la clave tenga permiso para acceder a él. Esto es necesario para crear una conexión SSH mediante el terminal o el. AWS CLI

  1. Asegúrese de permitir el tráfico SSH entrante. Para ver instrucciones, consulte Antes de conectarse: autorice el tráfico entrante.

  2. Localice su archivo .pem. Estas instrucciones suponen que el archivo se denomina mykeypair.pem y que se almacena en el directorio de inicio del usuario actual.

  3. Escriba el comando siguiente para definir los permisos. Sustituya ~/mykeypair.pem por la ruta de acceso completa y el nombre del archivo de clave privada del par de claves. Por ejemplo, C:/Users/<username>/.ssh/mykeypair.pem.

    chmod 400 ~/mykeypair.pem

    Si no establece permisos en el archivo .pem, recibirá un error indicando que el archivo de clave no está protegido y la clave se rechazará. Para conectarse, solo tiene que establecer permisos en el archivo de clave privada del par de claves la primera vez que lo use.

Para conectarse al nodo principal utilizando el terminal
  1. Abra una ventana de terminal. En Mac OS X, elija Aplicaciones > Utilidades > Terminal. En otras distribuciones de Linux, el terminal normalmente se encuentra en Aplicaciones > Accesorios > Terminal.

  2. Para establecer una conexión al nodo principal, escriba el siguiente comando. Sustituya ec2-###-##-##-###.compute-1.amazonaws.com por el nombre de DNS público principal del clúster y sustituya ~/mykeypair.pem por la ruta de acceso completa y el nombre del archivo .pem. Por ejemplo, C:/Users/<username>/.ssh/mykeypair.pem.

    ssh hadoop@ec2-###-##-##-###.compute-1.amazonaws.com -i ~/mykeypair.pem
    importante

    Debe utilizar el nombre de inicio de sesión hadoop cuando se conecte al nodo principal de Amazon EMR; de lo contrario, es posible que vea un error similar a Server refused our key.

  3. Una advertencia indica que la autenticidad del host al que se está conectando no se puede verificar. Escriba yes para continuar.

  4. Cuando haya terminado de trabajar en el nodo principal, escriba el siguiente comando para cerrar la conexión SSH.

    exit

Si tiene dificultades para usar SSH para conectarse a su nodo principal, consulte Solucionar problemas de conexión a su instancia.

Conectarse al nodo principal mediante SSH en Windows

Los usuarios de Windows pueden utilizar un cliente SSH como PuTTY para conectarse al nodo principal. Antes de conectarse al nodo principal de Amazon EMR, debe descargar e instalar PuTTY y PuTTYgen. Puede descargar estas herramientas desde la página de descarga de PuTTY.

PuTTY no admite de forma nativa el formato de archivo de clave privada del par de claves (.pem) generado por Amazon EC2. Utilice PuTTYgen para convertir su archivo de clave al formato de PuTTY requerido (.ppk). Debe convertir su clave en este formato (.ppk) antes de intentar conectarse al nodo principal utilizando PuTTY.

Para obtener más información sobre la conversión de la clave, consulte Convertir la clave privada mediante PuttyGen en la Guía del usuario de Amazon EC2.

Para conectarse al nodo principal utilizando PuTTY
  1. Asegúrese de permitir el tráfico SSH entrante. Para ver instrucciones, consulte Antes de conectarse: autorice el tráfico entrante.

  2. Abra putty.exe. También puede lanzar PuTTY desde la lista de programas de Windows.

  3. Si es necesario, en la lista Category (Categoría), elija Session (Sesión).

  4. En Nombre de host (o dirección IP), escriba DNS. hadoop@ MasterPublic Por ejemplo, hadoop@ec2-###-##-##-###.compute-1.amazonaws.com.

  5. En la lista Category (Categoría), elija Connection > SSH (Conexión > SSH), Auth (Autenticación).

  6. En Private key file for authentication (Archivo de clave privada para la autenticación), elija Browse (Examinar) y seleccione el archivo .ppk que ha generado.

  7. Selecciona Abrir y, a continuación, para descartar la alerta de seguridad de PuTTY.

    importante

    Al iniciar sesión en el nodo principal, escriba hadoop si se le solicita un nombre de usuario.

  8. Cuando haya terminado de trabajar en el nodo principal, puede cerrar la conexión SSH cerrando PuTTY;.

    nota

    Para evitar que se supere el tiempo de espera de la conexión SSH, puede elegir Connection (Conexión) en la lista Category (Categoría) y seleccionar la opción Enable TCP_keepalives (Habilitar conexiones keepalives de TCP). Si dispone de una sesión de SSH activa en PuTTY, puede cambiar la configuración abriendo el contexto (clic con el botón derecho) en la barra del título de PuTTY y seleccionar Cambiar configuración.

Si tiene dificultades para usar SSH para conectarse a su nodo principal, consulte Solucionar problemas de conexión a su instancia.

Conectarse al nodo principal utilizando la AWS CLI

Puede crear una conexión SSH con el nodo principal mediante Windows y Linux, Unix y Mac OS X. Independientemente de la plataforma, necesitará el nombre de DNS público del nodo principal y la clave privada del par de claves de Amazon EC2. AWS CLI Si utiliza Linux, Unix o Mac OS X, también debe configurar los permisos en el archivo de clave privada, tal y como se muestra en la .ppk siguiente. AWS CLI .pem Para configurar los permisos de archivo de clave privada del par de claves

Para conectarse al nodo principal mediante el AWS CLI
  1. Asegúrese de permitir el tráfico SSH entrante. Para ver instrucciones, consulte Antes de conectarse: autorice el tráfico entrante.

  2. Para recuperar el identificador del clúster, escriba:

    aws emr list-clusters

    La salida enumera los clústeres, incluidos los ID de los clústeres. Tenga en cuenta el ID del clúster al que se está conectando.

    "Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "NormalizedInstanceHours": 4, "Id": "j-2AL4XXXXXX5T9", "Name": "AWS CLI cluster"
  3. Escriba el comando siguiente para abrir una conexión SSH al nodo principal. En el ejemplo siguiente, sustituya j-2AL4XXXXXX5T9 por el ID del clúster y sustituya ~/mykeypair.key por la ruta de acceso completa y el nombre de archivo del archivo .pem (para Linux, Unix y Mac OS X) o .ppk (para Windows). Por ejemplo, C:\Users\<username>\.ssh\mykeypair.pem.

    aws emr ssh --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key
  4. Cuando haya terminado de trabajar en el nodo principal, cierre la AWS CLI ventana.

    Para más información, consulte Comandos de Amazon EMR en la AWS CLI. Si tiene dificultades para usar SSH para conectarse a su nodo principal, consulte Solucionar problemas de conexión a su instancia.