¿Cómo puedo acceder a un clúster de Amazon EMR a través de una aplicación si el clúster está en una subred privada?

4 minutos de lectura
0

Quiero usar una aplicación, como Apache Livy, para acceder y enviar trabajos a un clúster de Amazon EMR que se encuentra en una subred privada.

Breve descripción

Cree un equilibrador de carga de aplicación con el esquema orientado a Internet. Establezca el destino del equilibrador de carga de aplicación en la dirección IP privada del nodo maestro. Esto le permite hacer lo siguiente:

  1. Conectarse al clúster de EMR que se encuentra en una subred privada.
  2. Enviar trabajos al cliente mediante las API de REST.

Resolución

Nota: Es posible que lo siguiente no funcione si lanza el clúster con Kerberos, o si habilita SSL para Livy.

  1. Abra la consola de Amazon Elastic Compute Cloud (Amazon EC2).
  2. En el panel de navegación, en Equilibrio de carga, seleccione Equilibradores de carga.
  3. Seleccione Crear equilibrador de carga.
  4. En la página Seleccionar el tipo de equilibrador de carga, en Equilibrador de carga de aplicación, seleccione Crear.
  5. En la página Paso 1: Configurar el equilibrador de carga, haga lo siguiente:
    Para Esquema, seleccione con conexión a Internet.
    Para Agentes de escucha, utilice las opciones predeterminadas (HTTP y puerto 80)
    Para VPC, seleccione la VPC en la que se encuentra el clúster de EMR.
    Para Zonas de disponibilidad, seleccione dos subredes. Asegúrese de que una de ellas sea la subred en la que se encuentra el clúster de EMR (subred privada).
  6. Seleccione Siguiente: Configurar los ajustes de seguridad.
  7. Si ha creado un agente de escucha seguro en el paso anterior, complete la página Configurar los ajustes de seguridad. De lo contrario, seleccione Siguiente: Configurar grupos de seguridad.
  8. Seleccione el grupo o los grupos de seguridad para el equilibrador de carga de aplicación. Recuerde que se trata de un equilibrador de carga de aplicación con conexión a Internet. Se recomienda utilizar un grupo de seguridad que limite las solicitudes entrantes de una dirección IP o un intervalo de direcciones IP específicos.
  9. Seleccione Siguiente: Configurar enrutamiento.
  10. En la página Paso 4: Configurar enrutamiento:
    En Grupo de destino, seleccione el grupo de destino que prefiera.
    En Nombre, introduzca el nombre del destino.
    En Tipo de destino, seleccione IP.
    En Protocolo, seleccione HTTP.
    En Puerto, introduzca el puerto de la interfaz de usuario web del cliente. Por ejemplo, para Livy, introduzca 8998. Para obtener más información, consulte Ver las interfaces web alojadas en los clústeres de Amazon EMR.
    En la sección Comprobaciones de estado, en Protocolo, seleccione HTTP.
    En Ruta, introduzca /sessions.
  11. Seleccione Siguiente: Registrar destinos.
  12. En la página Paso 5: Registrar destinos, en IP, introduzca la dirección IP privada del nodo maestro. Puede encontrar la dirección IP privada del nodo maestro en la pestaña Hardware de la página de detalles del clúster.
  13. Seleccione Añadir a la lista para añadir la dirección IP a la lista Para registrar.
  14. Seleccione Siguiente: Revisar y, a continuación, seleccione Crear.
  15. Cuando el Estado cambie a activo, seleccione la pestaña Agentes de escucha.
  16. En la columna Reglas, seleccione el enlace del grupo de destino.
  17. En la pestaña Destinos, confirme que los Destinos registrados y las Zonas de disponibilidad estén en buen estado.
  18. En la pestaña Descripción, seleccione el enlace situado junto al Equilibrador de carga (el enlace que es el nombre del equilibrador de carga). Si aparece la interfaz de usuario web de Livy, la configuración está funcionando. Esto significa que las solicitudes pueden llegar a Livy en el clúster EMR de la subred privada.

Ahora puede enviar trabajos al cliente. Por ejemplo, el siguiente comando envía un trabajo de Apache Spark al servidor de Livy. Sustituya livyALB-2103017743.us-east-1.elb.amazonaws.com por el nombre DNS de su equilibrador de carga de aplicación. Encontrará el nombre DNS en la pestaña Descripción del equilibrador de carga de aplicación.

curl -X POST --data '{"kind": "pyspark"}' -H "Content-Type: application/json" livyALB-2103017743.us-east-1.elb.amazonaws.com/sessions

Información relacionada

Acceder a las interfaces de usuario web de Spark

Apache Livy

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años