Adición de un servicio Amazon EMR Spark

Si tiene Watson Studio Enterprise, puede seguir trabajando con los datos que ha almacenado en Amazon Simple Storage Service en IBM Watson Studio ejecutando el cuaderno en un clúster de Amazon Elastic Map Reduce. Para poder ejecutar un cuaderno en Amazon Elastic Map Reduce y acceder a sus datos, debe configurar el servicio Amazon EMR y asociarlo a su proyecto.

Puede añadir uno o varios servicios Amazon EMR Spark a un proyecto, pero el mismo servicio no se puede añadir a otro proyecto. Cada cuaderno se ejecuta en un kernel dedicado en un servicio Amazon EMR. Puede detener el kernel desde el menú Kernel de la barra de acciones del cuaderno.

Si tiene más de un servicio Amazon EMR Spark, puede cambiar el servicio Amazon EMR asociado a un proyecto. Pulse Configuración en la página del proyecto y en la sección Asociar servicios, elimine el servicio Amazon EMR existente y añada uno nuevo.

Limitaciones conocidas y características no soportadas

En la lista siguiente se describen detalladamente las limitaciones para los usuarios y se incluyen las características de cuaderno que no están habilitadas para Amazon EMR:

  • Solo se da soporte a los kernels del cuaderno Python.
  • La inicialización del kernel de Python Spark puede tardar algún tiempo en función del tiempo que se tarde en inicializar el shell PySpark en el clúster.
  • Los cuadernos que se ejecutan en Amazon EMR no se pueden planificar.
  • No puede añadir archivos y conexiones de origen de datos al cuaderno (el icono Buscar y añadir datos está inhabilitado).
  • No puede supervisar la ejecución de los trabajos de Spark para las celdas de código en un cuaderno. Para supervisar los trabajos de Spark en ejecución, utilice el servidor de historial de Spark que proporciona Amazon EMR.
  • No puede detener el kernel del cuaderno desde el menú Acciones del cuaderno en la página del proyecto. Solo puede detener el kernel desde la barra de acciones del cuaderno.

Adición de un servicio Amazon EMR Spark a un proyecto

Para habilitar los cuadernos para que se ejecuten en el clúster de Amazon EMR:

  1. Cree un clúster de EMR y configure Jupyter Kernel Gateway. Jupyter Kernel Gateway es un servidor web que da soporte a la comunicación entre Watson Studio y los kernels del cuaderno de Jupyter en Amazon EMR. Consulte el Paso 1.
  2. Asegúrese de que la conexión con el Kernel Gateway es segura. Consulte el Paso 2.
  3. Asocie este servidor web de Kernel Gateway a Amazon EMR con el proyecto al que añade el cuaderno en Watson Studio. Consulte el Paso 3.

Pas 1: Crear un clústere de EMR y configurar Kernel Gateway

Para poder añadir un servicio Amazon EMR Spark al proyecto, debe crear un clúster en Amazon EMR y configurar Jupyter Kernel Gateway:

  1. Abra la consola de Amazon EMR.
  2. Pulse Servicios y seleccione EMR en la sección de análisis.
  3. Pulse Crear clúster y siga los pasos para crear un clúster.
  4. Cuando el clúster se esté ejecutando, inicie una sesión en el nodo maestro del clúster como usuario predeterminad de Hadoop.
  5. En el shell del nodo maestro, especifique los siguientes mandatos:

    a. wget https://raw.githubusercontent.com/IBMDataScience/kernelgateway-setup/master/install_kg_emr_bootstrap_script.sh

    Este mandato descarga el script de configuración de Kernel Gateway.

    b. chmod +x install_kg_emr_bootstrap_script.sh && ./install_kg_emr_bootstrap_script.sh --port <kernelgateway-port> --token <personal-access-token>

    Este mandato ejecuta el script de configuración de Kernel Gateway.

    <kernelgateway-port> es el puerto en el que escucha el servidor web de Kernel Gateway. Asegúrese de que el grupo de seguridad asignado al nodo maestro de EMR permite conexiones entrantes desde cualquier sitio en el puerto que elija.

    <personal-access-token> es la contraseña segura a Kernel Gateway. Puede seleccionar su propia contraseña. Recuerde esta señal de acceso para cuando añada el servicio a su proyecto en Watson Studio.

    El script instala e inicia el servidor web de Kernel Gateway. El script devuelve el URL a Kernel Gateway, que necesitará cuando añade este servicio a su proyecto en Watson Studio.

Paso 2: Crear una conexión segura

Siga estos pasos para asegurarse de que la conexión con el Kernel Gateway es segura. En estos pasos se explica una forma de proteger la conexión.

  1. Registre un nuevo dominio si todavía no tiene uno. Por ejemplo, emr.example.com.
  2. Solicite un certificado para el dominio registrado si no tiene un certificado:

    a. Asocie una dirección de correo electrónico de contacto con el dominio. Esta dirección puede estar en un registro MX o puede ser una de las cinco direcciones de administración del sistema comunes, por ejemplo [email protected] o [email protected]. AWS Certificate Manager (ACM) necesita esta dirección para verificar que controla el dominio para el que se emite el certificado ACM.

    b. Solicite un certificado SSL para el dominio registrado mediante Amazon Certificate Manager.

  3. Cree un equilibrador de carga clásico con un escucha HTTPS. Nota: Esto puede incurrir en costes adicionales.
  4. Asigne el certificado a su equilibrador de carga y enlace la instancia de Amazon EMR registrada en el mismo. Para obtener más detalles, consulte Certificados SSL/TLS para los equilibradores de carga clásicos.
  5. Configure el equilibrador de carga:

    a. Puesto que Kernel Gateway reenvía conexiones de websocket, defina el reenvío de puerto de modo que direccione las solicitudes de conexión. Por ejemplo: secure TCP port 443 -> TCP port <kernelgateway-port>

    Nota: Asegúrese de que este valor se ajuste a las directrices de seguridad de la empresa.

    b. Configure la comprobación de estado del equilibrador de carga especificando los siguientes valores de campo:

    Ping protocol: HTTP

    Ping port: <kernelgateway-port>

    Ping path: /api/swagger.json

    El equilibrador de carga envía una solicitud a la instancia de Amazon EMR registrada en el puerto de Kernel Gateway y la vía de acceso /api/swagger.json cada 30 segundos (intervalo predeterminado) para comprobar si el servidor web de Kernel Gateway sigue estando operativo.

  6. Añada un registro de CNAME con el nombre DNS del equilibrador de carga al dominio.

    El registro del dominio se actualizará en 24 horas. A partir de entonces, puede asociar el servicio Amazon EMR Spark con un proyecto en Watson Studio.

    Cuando el estado del equilibrador de carga se marque como InService en la consola de Amazon EMR, puede ejecutar cuadernos en el servicio Amazon EMR Spark.

    La utilización de un punto final estático tiene la ventaja añadida de que el servicio Amazon EMR continúa siendo válido siempre que se esté ejecutando el equilibrador de carga. Si detiene un clúster y crea uno nuevo, puede asignar el equilibrador de carga al nuevo clúster y el servicio asociado se ejecutará de nuevo.

Paso 3: Asociar el servicio Amazon EMR Spark con un proyecto

Ahora añada este servicio que acaba de crear a su proyecto:

  1. Abra el proyecto en Watson Studio.
  2. En la página Proyecto, vaya a Configuración y Servicios asociados (para ver una lista de todos los servicios asociados conectados al proyecto).
  3. Pulse añadir servicio asociado y, a continuación, seleccione Amazon EMR en la lista.
  4. En la página Amazon EMR, puede añadir un nuevo servicio. Escriba su señal de acceso personal y el URL de Kernel Gateway (el URL del equilibrador de carga).
  5. Pulse guardar para añadir el servicio al proyecto. El servicio Amazon EMR Spark se añade a la lista de Servicios asociados.