Mi trabajo de Amazon EMR falla y aparece el error «Container released on a lost node».
Descripción corta
Cuando Amazon EMR termina un nodo central o de tarea debido a la alta utilización del espacio en disco, es posible que recibas el siguiente error:
«ExecutorLostFailure (executor 12 exited caused by one of the running tasks) Reason: Container marked as failed: container_1572839353552_0008_01_000002 on host: ip-##-###-##-## Exit status: -100. Diagnostics: Container released on a lost node»
También puedes recibir el error anterior cuando un nodo deja de responder debido a un uso elevado y prolongado de la CPU o a la poca memoria disponible.
La siguiente resolución proporciona los pasos para resolver el error que recibes cuando te quedas sin espacio en disco y la métrica de nodos en mal estado de MR muestra los nodos en mal estado.
Resolución
Cuando el uso de un disco de nodo central o de tarea (por ejemplo, /mnt o /mnt1) supera el 90 %, se considera que el disco no está en buen estado. Si menos del 25 % de los discos de un nodo están en buen estado, YARN ResourceManager retira el nodo sin problemas. Para solucionar este problema, agrega más capacidad de Amazon Elastic Block Store (Amazon EBS) al clúster de EMR.
Determinación de la causa raíz
Para determinar la causa del error, comprueba las métricas de Amazon CloudWatch del clúster de EMR MR unhealthy nodes y MR lost nodes.
Si la métrica de nodos en mal estado de MR muestra un nodo en mal estado, el problema se debe a que no hay suficiente espacio en disco.
Si la métrica de nodos perdidos de MR muestra un nodo perdido, la pérdida del nodo se debe a un error de hardware. O bien, Amazon EMR no puede llegar al nodo debido a un uso elevado de CPU o memoria.
Adición de más capacidad de Amazon EBS para clústeres nuevos
Para agregar más capacidad de Amazon EBS al iniciar un clúster de Amazon EMR, elige un tipo de instancia de Amazon Elastic Compute Cloud (Amazon EC2) más grande. Para obtener más información, consulta Almacenamiento predeterminado de Amazon EBS para instancias. También puedes modificar el tamaño del volumen o agregar más volúmenes al crear el clúster.
Adición de más nodos centrales o de tarea para clústeres nuevos o en ejecución
Elige un número mayor de nodos centrales o de tarea al iniciar un nuevo clúster. O bien, agrega más nodos centrales o de tarea a un clúster en ejecución.
Adición de más volúmenes de Amazon EBS para clústeres en ejecución
Si los volúmenes más grandes de Amazon EBS no resuelven el problema, adjunta más volúmenes de Amazon EBS a un clúster en ejecución.
Sigue estos pasos:
-
Adjunta más volúmenes de Amazon EBS a los nodos centrales y de tarea.
-
Formatea y monta los volúmenes adjuntos. Asegúrate de usar el número de disco correcto. Por ejemplo, /mnt1 o /mnt2 en lugar de /data.
-
Usa SSH para conectarte al nodo.
-
Agrega la ruta /mnt1/yarn dentro de la propiedad yarn.nodemanager.local-dirs de /etc/hadoop/conf/yarn-site.xml.
Ejemplo:
<property> <name>yarn.nodemanager.local-dirs</name>
<value>/mnt/yarn,/mnt1/yarn</value>
</property>
-
Reinicia el servicio NodeManager:
sudo stop hadoop-yarn-nodemanager
sudo start hadoop-yarn-nodemanager
-
Activa la protección de terminación.
Si sigues teniendo problemas de espacio en disco, toma las siguientes medidas:
- Elimina los archivos innecesarios.
- Aumenta el umbral de utilización del disco del 90 % al 99 %. Para ello, modifica la propiedad yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage de yarn-default.xml en todos los nodos. A continuación, reinicia el servicio hadoop-yarn-nodemanager.
Información relacionada
El clúster de Amazon EMR termina con NO_SLAVE_LEFT y los nodos centrales con FAILED_BY_MASTER
¿Por qué el nodo central de mi clúster de Amazon EMR se está quedando sin espacio en disco?