Saltar al contenido

¿Cómo soluciono los problemas de las aplicaciones de Spark que no se ejecutan en mi cuaderno de Amazon EMR?

4 minutos de lectura
0

Quiero solucionar los problemas de las aplicaciones de Apache Spark que no se ejecutan en mi cuaderno de Amazon EMR.

Descripción corta

Es posible que las aplicaciones de Spark que se ejecutan en un cuaderno de Amazon EMR no se inicien y aparezca el siguiente error:

"The code failed because of a fatal error: Session 4 did not start up in 60 seconds."

Resolución

Comprobación de los recursos del clúster

Asegúrate de que Spark tenga suficientes recursos disponibles en el clúster para que Jupyter pueda crear un contexto de Spark. Para comprobar los recursos disponibles, utiliza las métricas de Amazon CloudWatch o el Administrador de recursos.

Asegurarse de que las bibliotecas de Sparkmagic estén configuradas correctamente

Ponte en contacto con tu administrador de Jupyter para asegurarte de que las bibliotecas de Sparkmagic están configuradas correctamente.

Reinicio del kernel del cuaderno

Sigue estos pasos:

  1. Abre la consola de Amazon EMR.
  2. En la barra de navegación, elige Espacios de trabajo (cuadernos).
  3. Selecciona el espacio de trabajo en la lista Espacios de trabajo (cuadernos) y, a continuación, elige Inicio rápido. O elige el espacio de trabajo de la lista y elige Adjuntar y, a continuación, elige Iniciar en JupyterLab o elige Iniciar en Jupyter.
  4. Elige Kernel y, a continuación, elige Reiniciar Kernel.

Aumento del tiempo de espera de la sesión de Spark para JupyterLab

Sigue estos pasos:

  1. Abre la consola de Amazon EMR.

  2. En la barra de navegación, elige Espacios de trabajo (cuadernos).

  3. Selecciona el espacio de trabajo en la lista Espacios de trabajo (cuadernos) y, a continuación, elige Inicio rápido. Se abre una nueva pestaña del navegador en el editor de JupyterLab.

  4. Abre el terminal del cuaderno.

  5. Ejecuta el siguiente comando para abrir el archivo config.json:

    vi /home/notebook/.sparkmagic/config.json

    Nota: Si has instalado la aplicación JupyterHub en la instancia principal de Amazon EMR, ejecuta el siguiente comando:

    vi /etc/jupyter/conf/config.json
  6. Agrega o actualiza la opción livy_session_startup_timeout_seconds: ### en el archivo config.json.

  7. Reinicia todos los kernels.
    Nota: Si has instalado la aplicación JupyterHub en la instancia principal de Amazon EMR, reinicia el contenedor de JupyterHub.

Memoria del controlador de Tune Spark

Modifica la memoria del controlador de Spark que la aplicación de cuaderno de Jupyter usa para controlar la asignación de recursos. Para obtener más información, consulta ¿Cómo puedo modificar la configuración de Spark en un espacio de trabajo de Amazon EMR Studio?

Asegurarse de que el servicio Livy esté en buen estado

Comprobación del estado del servidor Livy que se ejecuta en la instancia del nodo maestro

Sigue estos pasos:

  1. Para comprobar el estado del livy-server, ejecuta el siguiente comando:

    sudo systemctl status livy-server
  2. Si el estado del servidor es inactivo, ejecuta el siguiente comando para reiniciar el livy-server:

    sudo systemctl start livy-server

Aumento de la memoria del servidor Livy

De forma predeterminada, el cliente de cuaderno intenta conectarse al servidor Apache Livy durante 90 segundos. Si el servidor Livy no responde en 90 segundos, el cliente generará un tiempo de espera. La razón más común por la que el servidor Livy no responde es la falta de recursos. Para solucionar este problema, aumenta la memoria del servidor Livy.

Sigue estos pasos:

  1. Usa SSH para conectarte al nodo maestro.

  2. Agrega la siguiente propiedad al archivo /etc/livy/conf/livy-env.sh:

    export LIVY_SERVER_JAVA_OPTS="-Xmx8g" (option to your value)
  3. Reinicia el servidor Livy.

    sudo systemctl stop livy-server; sudo systemctl start livy-server

Uso del modo de clúster en lugar del modo de cliente en Livy

Cuando envías aplicaciones de Spark en el cuaderno en modo de cliente, el controlador de Spark se ejecuta como el subproceso del servidor Livy. Si ejecutas un subproceso, es posible que no tengas recursos en el nodo maestro. Para evitar los errores de Livy causados por la insuficiencia de recursos, cambia el modo de despliegue al modo de clúster. Cuando ejecutas aplicaciones de Spark en modo de clúster, el controlador se ejecuta en los nodos centrales y de tarea, en lugar del nodo maestro.

Sigue estos pasos:

  1. Conexión al nodo maestro mediante SSH.

  2. Agrega el siguiente parámetro al archivo /etc/livy/conf/livy.conf:

    livy.spark.deploy-mode  cluster
  3. Reinicia el servidor Livy:

    sudo systemctl stop livy-server; sudo systemctl start livy-server
OFICIAL DE AWSActualizada hace 6 meses