Quiero solucionar los errores que se producen cuando ejecuto una aplicación de Apache Livy con un cuaderno de Jupyter en Amazon EMR.
Breve descripción
Cuando ejecuta una aplicación de Apache Livy con un cuaderno de Jupyter en Amazon EMR, se produce uno de los siguientes errores:
- '404' de xxxxxxxx con carga de error: «No se encontró la sesión '0'»
- «El código ha fallado debido a un error grave: Error al enviar la solicitud http y se ha alcanzado el número máximo de reintentos.»
Estos errores se suelen producir cuando se mantiene la sesión del cuaderno de Jupyter en ejecución hasta que se agota el tiempo de espera. Para solucionar estos errores, aumente el valor de la propiedad livy.server.session.timeout de /etc/livy/conf/livy.conf en el nodo maestro. A continuación, reinicie livy-server.
Solución
Puede modificar livy.server.session.timeout en un clúster de Amazon EMR en ejecución o al lanzar un nuevo clúster.
En un clúster en ejecución
1. Abra /etc/livy/conf/livy.conf en el nodo maestro y, a continuación, modifique el valor livy.server.session.timeout (el valor predeterminado es 1 h). Ejemplo:
sudo vim /etc/livy/conf/livy.conf
livy.server.session.timeout 2h
2. Ejecute los siguientes comandos en el nodo maestro para reiniciar livy-server:
Supongamos que utiliza una de las siguientes versiones de Amazon EMR que se basa en Amazon Linux 2:
- Versión 5.30.0 o posterior de Amazon EMR
- Serie 6.x de Amazon EMR
Ejecute los siguientes comandos:
sudo systemctl stop livy-server
sudo systemctl start livy-server
Si utiliza la versión 5.29.0 de Amazon EMR u otra anterior, ejecute los siguientes comandos:
sudo stop livy-server
sudo start livy-server
Mientras livy-server se reinicia, el clúster no está disponible. Para evitar el tiempo de inactividad, configure la aplicación de Livy cuando lance un clúster de Amazon EMR.
En un clúster nuevo
Añada un objeto de configuraciónsimilar al siguiente cuando lance un clúster con la versión 4.6.0 de Amazon EMR u otra posterior. Además de modificar livy.server.session.timeout, si lo desea, puede modificar las siguientes propiedades relacionadas:
- livy.server.session.timeout-check: Cuando se activa, Livy detiene las sesiones inactivas que alcanzan el límite de tiempo de espera. La configuración predeterminada es true.
- livy.server.yarn.app-lookup-timeout: Tiempo durante el cual Livy busca la aplicación YARN antes de considerarla perdida. La configuración predeterminada es 60 s.
[
{
"Classification": "livy-conf",
"Properties": {
"livy.server.session.timeout-check": "true",
"livy.server.session.timeout": "2h",
"livy.server.yarn.app-lookup-timeout": "120s"
}
}
]
Cuando acabe de ejecutar el trabajo, asegúrese de cerrar la sesión en Jupyter o Zeppelin. Si hay demasiadas sesiones abiertas, no se pueden iniciar nuevos trabajos hasta que haya recursos disponibles.
Información relacionada
Apache Livy
Cuaderno de Jupyter en Amazon EMR