Mi nodo maestro de Amazon EMR produce un error "502 Bad Gateway" o "504 Gateway Time-out".
Descripción corta
Un nodo maestro de Amazon EMR puede fallar con uno de los siguientes errores:
"The master failed: Error occurred:<html>?? <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-16"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>502 Bad Gateway</title></head> <body>?? <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx/1.20.0</center>?? </body>?? </html>??"
O bien:
"The master failed: Error occurred: <html>??<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-16"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>504 Gateway Time-out</title></head>??<body>??<center><h1>504 Gateway Time-out</h1></center>??<hr><center>nginx/1.16.1</center>??</body>??</html>??"
Estos errores se pueden mostrar por uno de los siguientes motivos:
- El daemon del controlador de instancias está detenido o inactivo en la instancia del nodo maestro.
- El nodo maestro no tiene memoria ni espacio en disco.
- Las comprobaciones de estado de las instancias de Amazon Elastic Compute Cloud (Amazon EC2) fallan.
Resolución
Solución de errores de daemon del controlador de instancias del nodo maestro
El controlador de instancias del nodo maestro se comunica con el plano de control de Amazon EMR y el resto del clúster. Si el controlador de instancias no puede comunicarse con el plano de control de Amazon EMR, Amazon EMR clasifica el nodo maestro como en mal estado. Si la protección de terminación está activada, usa SSH para conectarte al nodo maestro y, a continuación, reinicia el proceso del controlador de instancias.
Amazon EMR versión 5.30.0 y posteriores:
-
Para comprobar el estado del controlador de instancias, ejecuta el siguiente comando:
sudo systemctl status instance-controller.service
-
Si el estado del controlador de instancias está inactivo, ejecuta el siguiente comando para reiniciar el controlador de instancias:
sudo systemctl start instance-controller.service
Amazon EMR versión 2 a 4:
-
Para comprobar el estado del controlador de instancias, ejecuta el siguiente comando:
sudo /etc/init.d/instance-controller status
-
Si el estado del controlador de instancias está inactivo, ejecuta el siguiente comando para reiniciar el controlador de instancias:
sudo /etc/init.d/instance-controller start
Solución de problemas de memoria y disco
Sigue estos pasos:
- Si la protección de terminación está activada, utiliza SSH para conectarte al nodo maestro.
- Revisa el archivo de registro del estado de la instancia.
- Analiza las métricas de la instancia, como la memoria y el disco, que figuran en el registro de estado instantáneo. Puedes usar comandos de Linux como free -m y df -h para analizar estas métricas.
- Utiliza los resultados del archivo de registro para determinar por qué el nodo maestro utiliza una gran cantidad de disco o memoria.
Solución de errores de comprobación de estado de la instancia de EC2 del nodo maestro
Revisa las métricas de comprobación de estado de la instancia para determinar si la comprobación de estado de la instancia principal falla. Si la verificación del estado de la instancia falla, soluciona el error de comprobación de estado de la instancia.
Nota: al iniciar y detener la instancia de EC2, el clúster de Amazon EMR se detiene.
Solución de problemas de los nodos maestros que tienen la protección de terminación desactivada y el clúster ya está terminado
Haz lo siguiente: