¿Cómo puedo solucionar el error de AWS Glue “The specified subnet does not have enough free addresses to satisfy the request”?

5 minutos de lectura
0

He ejecutado un trabajo de extracción, transformación y carga (ETL) de AWS Glue. Sin embargo, se ha producido un error y he recibido un mensaje de error que decía que no hay suficientes direcciones IP libres en la subred.

Descripción breve

Al ejecutar un trabajo de ETL de AWS Glue, es posible que aparezca uno de los siguientes errores:

  • “The specified subnet does not have enough free addresses to satisfy the request. (Service: AmazonEC2; Status Code: 400; Error Code: InsufficientFreeAddressesInSubnet; Request ID: my_request_id)”
  • “An error occurred calling o70.getDynamicFrame. Job 0 cancelled because SparkContext was shut down caused by threshold for executors failed after launch reached”

Los errores anteriores se pueden producir por los siguientes motivos:

  • El trabajo de AWS Glue utiliza más unidades de procesamiento de datos (DPU) que direcciones IP disponibles.
  • Otros servicios de AWS utilizan direcciones IP en la misma subred.
  • No has desconectado las interfaces de red elásticas una vez finalizado el trabajo.

Resolución

Confirmación de la cantidad de DPU que utiliza el trabajo y reducción de la cantidad de DPU

Asegúrate de que el trabajo esté completo. A continuación, confirma cuántas DPU ha utilizado el trabajo y determina la cantidad de DPU que puedes eliminar.

Para comprobar cuántas DPU ha utilizado el trabajo, sigue estos pasos:

  1. Abre la consola de AWS Glue.
  2. En el panel de navegación, elige Trabajos.
  3. Selecciona el trabajo y, a continuación, elige la pestaña Historial.
  4. Comprueba la cantidad de DPU en la columna Capacidad máxima.

A continuación, determina la cantidad de DPU que deseas eliminar del trabajo.

La cantidad de DPU no es igual a la cantidad de interfaces de red.

Cada trabajador requiere una interfaz de red, con la excepción de los siguientes tipos de trabajadores, cada uno de los cuales requiere una interfaz de red adicional:

  • Tipo de trabajador estándar (1 DPU por trabajador)
  • Tipo de trabajador G1.X (1 DPU por trabajador)
  • Tipo de trabajador G2.X (2 DPU)

Por ejemplo, si ejecutas un trabajo con 20 trabajadores en un G.2x, utiliza el siguiente cálculo para calcular la cantidad de direcciones IP:

AWS Glue 2.0/3.0/4.0: 40 DPU = 19 trabajadores (ejecutores) + 1 controlador = 20 direcciones IP (no hay ejecutor de tareas en AWS Glue 2.0/3.0/4.0)

Para reducir la cantidad de DPU, sigue estos pasos:

  1. Abre la consola de AWS Glue.
  2. En el panel de navegación, elige Trabajos y, a continuación, selecciona el trabajo.
  3. Elige la lista desplegable Acción y, a continuación, elige Editar trabajo.
  4. Amplía la lista Security configuration, script libraries, and job parameters (optional) (Configuración de seguridad, bibliotecas de scripts y parámetros del trabajo [opcional]).
  5. En el campo Capacidad máxima, introduce un número inferior para el número máximo de DPU que puede usar el trabajo.
  6. Guarda los cambios y, a continuación, vuelve a ejecutar el trabajo.

Comprobación de la cantidad de direcciones IP disponibles y eliminación de las interfaces de red no utilizadas

En primer lugar, aumenta la cantidad de direcciones IP disponibles en la subred.

Sigue estos pasos:

  1. Abre la consola de AWS Glue.
  2. En el panel de navegación, selecciona Conexiones.
  3. Selecciona la conexión que usa tu trabajo.
  4. Elige la lista desplegable Acción y, a continuación, elige Ver detalles.
  5. Anota la subred.
  6. Abre la consola de Amazon VPC.
  7. En el panel de navegación, elige Subredes.
  8. En la lista desplegable Subred, elige la subred que utiliza la conexión de AWS Glue.
  9. En la pestaña Descripción, comprueba el campo Direcciones IPv4 disponibles para ver cuántas direcciones IP hay disponibles en la subred.
  10. Comprueba que la subred tenga más direcciones IP disponibles de las que requiere el trabajo de AWS Glue.

Si la subred no tiene suficientes direcciones IP disponibles, elimina las interfaces de red no utilizadas.

Creación y uso de una subred con más direcciones IP disponibles

Si la subred existente no tiene suficientes direcciones IP, crea una nueva subred en tu Amazon VPC. Puedes usar el bloque de CIDR original o añadir uno nuevo para ampliar el rango. A continuación, verifica que la nueva subred utilice la misma tabla de enrutamiento y las mismas reglas de la lista de control de acceso de la red (ACL de la red) que la subred original. Por ejemplo, si la subred anterior tenía una ruta predeterminada a una puerta de enlace de Internet, la nueva subred debe enrutarse a una puerta de enlace de Internet.

Actualización de la conexión de AWS Glue para usar la nueva subred

Sigue estos pasos:

  1. Abre la consola de AWS Glue.
  2. En el panel de navegación, selecciona Conexiones.
  3. Selecciona la conexión que utiliza tu trabajo de AWS Glue.
  4. En la lista desplegable Acción, selecciona Editar conexión.
  5. En la página Setup your connection's properties (Configurar las propiedades de la conexión), elige Siguiente.
  6. En la página Setup access to your data store (Configurar el acceso al almacén de datos), en la lista desplegable Subred, selecciona la nueva subred.
  7. Elige Siguiente y, a continuación, Finalizar.
  8. Vuelve a ejecutar el trabajo.

Información relacionada

Definición de propiedades de trabajo para trabajos de Spark

Configuración de Amazon VPC para conexiones JDBC a los almacenes de datos de Amazon RDS de AWS Glue

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un mes