Error de clúster de Amazon EMR: “Nodos en la lista de denegación”
El daemon NodeManager es responsable de lanzar y administrar los contenedores en los nodos secundarios y de tareas. El daemon ResourceManager que se ejecuta en el nodo maestro asigna los contenedores al daemon NodeManager. El ResourceManager monitorea el nodo NodeManager a través de un latido.
Hay un par de situaciones en las que el daemon ResourceManager envía a la lista de denegados un NodeManager y lo elimina del grupo de nodos disponible para procesar tareas:
-
Si NodeManager no ha enviado un latido al daemon ResourceManager en los últimos 10 minutos (600 000 milisegundos). Este periodo de tiempo puede configurarse mediante la opción de configuración
yarn.nm.liveness-monitor.expiry-interval-ms
. Para obtener más información sobre cómo cambiar la configuración de Yarn, consulte Configuración de aplicaciones en la Guía de publicación de Amazon EMR. -
NodeManager comprueba el estado de los discos determinado por
yarn.nodemanager.local-dirs
yyarn.nodemanager.log-dirs
. Las comprobaciones incluyen permisos y espacio libre en disco (< 90 %). Si un disco no supera la comprobación, NodeManager deja de utilizarlo pero sigue notificando que el estado del nodo es correcto. Si varios discos no superan la compilación, el estado del nodo se notifica como no correcto a ResourceManager y los nuevos contenedores no se asignan al nodo.
El nodo principal de la aplicación también puede incluir en la lista de denegados un nodo NodeManager si tiene más de tres tareas con errores. Puede cambiar esto a un valor superior utilizando el parámetro de configuración mapreduce.job.maxtaskfailures.per.tracker
. Otras opciones de configuración que podría cambiar controlan cuántas veces se intenta una tarea antes de marcarla como errónea: mapreduce.map.max.attempts
para tareas de asignación y mapreduce.reduce.maxattempts
para tareas de reducción. Para obtener más información sobre cómo cambiar la configuración, consulte Configuración de aplicaciones en la Guía de publicación de Amazon EMR.