¿Por qué se muestra el error «Estado de salida: -100. Diagnóstico: Contenedor publicado en un *nodo* perdido"?

4 minutos de lectura
0

Se ha producido el siguiente error en mi tarea de AWS Glue 1.0 o 0.9: «Estado de salida: -100. Diagnóstico: Contenedor publicado en un nodo perdido."

Solución

Si su fuente de datos es JDBC, consulte ¿Por qué se produce un error de nodos perdidos en mi trabajo de AWS Glue cuando migro un conjunto de datos de gran tamaño de Amazon RDS a Amazon S3? Si su fuente de datos es Amazon Simple Storage Service (Amazon S3), utilice uno o varios de los siguientes métodos para solucionar los errores de nodo perdido.

Nota: Si se muestran errores mientras ejecuta comandos de AWS CLI, compruebe si está utilizando la versión más reciente de AWS CLI.

Añadir más unidades de procesamiento de datos (DPU)

De forma predeterminada, los trabajos de AWS Glue tienen 10 DPU y utilizan el tipo de trabajador Estándar tipo de empleado. Se reserva una DPU para la aplicación maestra. Antes de añadir más DPU, tenga en cuenta lo siguiente:

  • Añadir más DPU solo ayuda si la carga de trabajo está en paralelo. Si no fracciona los datos debidamente, no se distribuirán a los nuevos nodos y se mostrarán errores de nodo perdido. Para obtener más información, consulte Determinar la capacidad óptima de DPU.
  • En algunos casos, puede que los archivos de gran tamaño consuman demasiados recursos en un nodo, lo que reduce la eficacia del paralelismo de la carga de trabajo. Para mitigar este problema, asegúrese de que los archivos grandes estén en un formato que se pueda fragmentar. Para obtener más información, consulte Prácticas recomendadas para escalar trabajos de Apache Spark y fragmentar datos con AWS Glue.
  • Cuanto más dure la ejecución de un trabajo, más registros se realizarán en el disco. Si los registros son la causa del problema de espacio de disco, añadir más DPU no ayuda. En algunos casos, los errores de nodo perdido se deben tanto a un exceso de registro como a desbordamientos del disco.
  • Compruebe los registros y la métrica de Amazon CloudWatch glue.ALL.jvm.heap.usage para identificar a los responsables de las ejecuciones que consumen memoria. Si algunos ejecutores consumen más memoria que otros, es posible que el error se deba a un sesgo de los datos.

Utilice la API Trabajos, la Interfaz de la línea de comandos de AWS (AWS CLI) o la consola de AWS Glue para añadir más DPU cuando cree un trabajo:

  • API Trabajos: defina la propiedad NumberOfWorkers cuando ejecute la operación CreateJob.
  • AWS CLI: defina la propiedad number-of-workers cuando ejecute el comando create-job.
  • Consola de AWS Glue: En la página Configuración de las propiedades del trabajo, en Configuración de seguridad, bibliotecas de scripts y parámetros de trabajos (opcional), incremente el valor de Capacidad máxima. Este es el número de DPU para el trabajo.

Asegúrese de que las métricas de CloudWatch estén habilitadas para el trabajo. Estas métricas pueden ayudarle a supervisar el rendimiento del trabajo y determinar si debe añadir más DPU. Utilice la API Trabajos, la AWS CLI o la consola de AWS Glue para habilitar la métrica para un trabajo nuevo o existente:

  • API Trabajos: Utilice el argumento--enable-metrics al definir DefaultArguments en las ](https://docs.aws.amazon.com/glue/latest/webapi/API_UpdateJob.html) operaciones CreateJob o [UpdateJob.
  • AWS CLI: Utilice el argumento --enable-metrics.
  • Consola de AWS Glue: En Opciones de supervisión, defina las Métricas de trabajo como Activadas.

Modificación del tipo de trabajador de la DPU

En función del tamaño del conjunto de datos, puede que el tipo de trabajador Estándar no tenga suficientes recursos para evitar que la aplicación de Spark se quede sin memoria y desborde el disco. Para solucionar este problema, elija un tipo de trabajador con más recursos disponibles:

  • Estándar (predeterminado): cada trabajador realiza la asignación a 1 DPU (4 vCPU, 16 GB de memoria) y tiene 50 GB de espacio de disco.
  • G.1X: cada trabajador realiza la asignación a 1 DPU (4 vCPU, 16 GB de memoria) y tiene 64 GB de espacio de disco.
  • G.2X: cada trabajador realiza la asignación a 2 DPU (8 vCPU, 32 GB de memoria) y tiene 128 GB de espacio de disco.

Utilice la API Trabajos, la AWS CLI o la consola de AWS Glue para cambiar el tipo de trabajador cuando cree un trabajo:

  • API Trabajos: defina la propiedad WorkerType cuando ejecute la operación CreateJob.
  • AWS CLI: defina la propiedad worker-type cuando ejecute el comando create-job.
  • Consola de AWS Glue: En la página Configuración de las propiedades del trabajo, en Configuración de seguridad, bibliotecas de scripts y parámetros de trabajos (opcional), seleccione otra opción distinta para Tipo de trabajador.

Información relacionada

Añadir trabajos en AWS Glue

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años