Opción 2, parte 1: configurar un túnel SSH al nodo principal utilizando el enrutamiento de puertos dinámico - Amazon EMR

Opción 2, parte 1: configurar un túnel SSH al nodo principal utilizando el enrutamiento de puertos dinámico

Para conectarse al servidor web local en el nodo principal, debe crear un túnel SSH entre su equipo y el nodo principal. Esto se conoce como enrutamiento de puertos. Si crea el túnel SSH con enrutamiento de puertos dinámico, todo el tráfico dirigido a un puerto local especificado sin utilizar se enruta al servidor web local en el nodo principal. Esto crea un proxy SOCKS. A continuación, puede configurar su navegador de Internet para utilizar un complemento como FoxyProxy o SwitchyOmega para administrar los ajustes del proxy SOCKS.

El uso de un complemento de administración de proxy le permite filtrar automáticamente las URL en función de los patrones de texto y limitar la configuración del proxy a dominios que coinciden con la forma del nombre de DNS pública del nodo principal. El complemento del navegador gestiona automáticamente la activación y desactivación del proxy al cambiar entre la visualización de sitios web alojados en el nodo principal y en Internet.

Antes de comenzar, necesita el nombre de DNS pública del nodo principal y el archivo de clave privada del par de claves. Para obtener información sobre cómo localizar el nombre de DNS público principal, consulte Recuperar el nombre de DNS público del nodo principal. Para obtener más información sobre el acceso al par de claves, consulte Pares de claves de Amazon EC2 en la Guía del usuario de Amazon EC2. Para obtener más información sobre los sitios que podría desear ver en el nodo principal, consulte Ver las interfaces web alojadas en clústeres de Amazon EMR.

Configurar un túnel SSH al nodo principal utilizando el enrutamiento de puertos dinámico con OpenSSH

Para configurar un túnel SSH utilizando el enrutamiento de puertos dinámico con OpenSSH
  1. Asegúrese de permitir el tráfico SSH entrante. Para obtener instrucciones, consulte Antes de conectarse a Amazon EMR: autorice el tráfico entrante.

  2. 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.

  3. Escriba el siguiente comando para abrir un túnel SSH en su máquina local. Sustituya ~/mykeypair.pem por la ubicación y el nombre del archivo .pem, sustituya 8157 por un número de puerto local sin utilizar y, por último, sustituya ec2-###-##-##-###.compute-1.amazonaws.com por el nombre de DNS público principal del clúster.

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

    Después de emitir este comando, el terminal permanece abierto y no devuelve una respuesta.

    nota

    -D hace referencia al uso de enrutamiento de puertos dinámico que le permite especificar un puerto local utilizado para reenviar datos a todos los puertos remotos en el servidor web local del nodo principal. El enrutamiento de puertos dinámicos crea una escucha de proxy SOCKS local en el puerto especificado en el comando.

  4. Una vez que el túnel está activo, configure un proxy SOCKS para su navegador. Para obtener más información, consulte Opción 2, parte 2: configurar ajustes de proxy para ver sitios web alojados en el nodo principal del clúster de Amazon EMR.

  5. Cuando haya terminado de trabajar con las interfaces web en el nodo principal, cierre la ventana del terminal.

Configurar un túnel SSH con el enrutamiento de puertos dinámico con la AWS CLI

Puede crear una conexión SSH con el nodo principal utilizando la AWS CLI en Windows y Linux, Unix y Mac OS X. Si está utilizando la AWS CLI en Linux, Unix o Mac OS X, deberá establecer permisos en el archivo .pem, tal y como se muestra en Para configurar los permisos de archivo de clave privada del par de claves. Si utiliza la AWS CLI en Windows, PuTTY debe aparecer en la variable de entorno de la ruta o podría recibir un error como, por ejemplo, OpenSSH o PuTTY no está disponible.

Para configurar un túnel SSH utilizando el enrutamiento de puertos dinámico con la AWS CLI
  1. Asegúrese de permitir el tráfico SSH entrante. Para obtener instrucciones, consulte Antes de conectarse a Amazon EMR: autorice el tráfico entrante.

  2. Crear una conexión SSH con el nodo principal, tal y como se muestra en Conectarse al nodo principal utilizando la AWS CLI.

  3. 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"
  4. Escriba el siguiente comando para abrir un túnel SSH en el nodo principal mediante el enrutamiento de puertos dinámico. En el ejemplo siguiente, sustituya j-2AL4XXXXXX5T9 por el ID del clúster y sustituya ~/mykeypair.key por la ubicación y el nombre de archivo del archivo .pem (para Linux, Unix y Mac OS X) o .ppk (para Windows).

    aws emr socks --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key
    nota

    El comando de socks configura automáticamente el enrutamiento de puertos dinámico en el puerto local 8157. Actualmente este ajuste no se puede modificar.

  5. Una vez que el túnel está activo, configure un proxy SOCKS para su navegador. Para obtener más información, consulte Opción 2, parte 2: configurar ajustes de proxy para ver sitios web alojados en el nodo principal del clúster de Amazon EMR.

  6. Cuando haya terminado de trabajar con las interfaces web en el nodo principal, cierre las ventana de la AWS CLI.

    Para obtener más información sobre cómo usar los comandos de Amazon EMR en la AWS CLI, consulte https://docs.aws.amazon.com/cli/latest/reference/emr.

Configurar un túnel SSH en el nodo principal mediante PuTTY

Los usuarios de Windows pueden utilizar un cliente SSH como PuTTY para crear un túnel SSH 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 Conversión de la clave privada mediante PuTTYgen en la Guía del usuario de Amazon EC2.

Para configurar un túnel SSH utilizando el enrutamiento de puertos dinámico en PuTTY
  1. Asegúrese de permitir el tráfico SSH entrante. Para obtener instrucciones, consulte Antes de conectarse a Amazon EMR: autorice el tráfico entrante.

  2. Haga doble clic en putty.exe para iniciar PuTTY. También puede lanzar PuTTY desde la lista de programas de Windows.

    nota

    Si ya tiene una sesión de SSH activa con el nodo principal, puede agregar un túnel pulsando con el botón derecho del ratón en la barra del título de PuTTY y seleccionar Cambiar configuración.

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

  4. En el campo Host Name (Nombre de host), escriba hadoop@MasterPublicDNS. Por ejemplo, hadoop@ec2-###-##-##-###.compute-1.amazonaws.com.

  5. En la lista Category (Categoría), expanda Connection > SSH (Conexión > SSH) y, a continuación, elija 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.

    nota

    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.

  7. En la lista Category (Categoría), expanda Connection > SSH (Conexión > SSH) y, a continuación, elija Tunnels (Túneles).

  8. En el campo Puerto de origen, escriba 8157 (un puerto local no utilizado) y, a continuación, seleccione Agregar.

  9. Deje el campo Destination (Destino) en blanco.

  10. Seleccione las opciones Dynamic (Dinámico) y Auto.

  11. Elija Open.

  12. Elija Yes (Sí) para descartar la alerta de seguridad de PuTTY.

    importante

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

  13. Una vez que el túnel está activo, configure un proxy SOCKS para su navegador. Para obtener más información, consulte Opción 2, parte 2: configurar ajustes de proxy para ver sitios web alojados en el nodo principal del clúster de Amazon EMR.

  14. Cuando haya terminado de trabajar con las interfaces web en el nodo principal, cierre la ventana de PuTTY.