Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Uso del escalado automático para AWS Glue

Modo de enfoque
Uso del escalado automático para AWS Glue - AWS Glue

Auto Scaling está disponible para su AWS Glue ETL, sesiones interactivas y trabajos en streaming con AWS Glue versión 3.0 o posterior.

Con Auto Scaling habilitado, obtendrá los siguientes beneficios:

  • AWS Glue agrega y elimina automáticamente trabajadores del clúster en función del paralelismo en cada etapa o microlote de la ejecución del trabajo.

  • Reduce la necesidad de experimentar y decidir el número de trabajadores que desea asignar a su AWS Glue ETLpuestos de trabajo.

  • Con el número máximo de trabajadores indicado, AWS Glue elegirá los recursos del tamaño adecuado para la carga de trabajo.

  • Para ver cómo cambia el tamaño del clúster durante la ejecución de la tarea, consulte CloudWatch las métricas de la página de detalles de la ejecución de la tarea en AWS Glue Estudio.

Auto Scaling para AWS Glue ETLy la transmisión de trabajos permite ampliar y ampliar según demanda los recursos informáticos de su AWS Glue puestos de trabajo. El escalado vertical bajo demanda lo ayuda a asignar solo los recursos informáticos necesarios, en principio, en el inicio de la ejecución de trabajos, así como a aprovisionar los recursos necesarios según la demanda durante el trabajo.

Auto Scaling también admite el escalado dinámico de AWS Glue recursos laborales a lo largo de un trabajo. Durante la ejecución de un trabajo, cuando la aplicación Spark solicite más ejecutores, se agregarán más empleados al clúster. Cuando el ejecutor ha estado inactivo sin tareas de cálculo activas, se eliminarán el ejecutor y el empleado correspondiente.

Los escenarios comunes en los que el escalado automático ayuda con el costo y el uso de sus aplicaciones de Spark incluyen:

  • un controlador de Spark que enumera un gran número de archivos en Amazon S3 o lleva a cabo una carga mientras los ejecutores se encuentran inactivos

  • etapas en las que Spark se ejecuta con solo unos pocos ejecutores debido al sobreaprovisionamiento

  • sesgos de datos o demanda de cálculo desigual en todas las etapas de Spark

Requisitos

Auto Scaling solo está disponible para AWS Glue versión 3.0 o posterior. Para usar Auto Scaling, puede seguir la guía de migración para migrar sus trabajos actuales a AWS Glue versión 3.0 o posterior o cree nuevos trabajos con AWS Glue versión 3.0 o posterior.

Auto Scaling está disponible para AWS Glue trabajos con los tipos de trabajador G.1X G.2X G.4XG.8X,,, o G.025X (solo para trabajos de streaming). No DPUs se admiten los estándares.

Activación de Auto Scaling en AWS Glue Studio

En la pestaña Detalles del trabajo en AWS Glue Studio, elige el tipo como Spark o Spark Streaming y la versión Glue a partir de Glue 3.0 esa fecha. A continuación, se mostrará una casilla de verificación debajo de Tipo de trabajador.

  • Seleccione la opción Automatically scale the number of workers (Escalar automáticamente el número de empleados).

  • Establezca el Maximum number of workers (Número máximo de empleados) para definir el número máximo de empleados que se pueden asignar a la ejecución de trabajos.

Activación y configuración de Auto Scaling en AWS Glue Estudio.

Habilitar Auto Scaling con AWS CLI o SDK

Para activar Auto Scaling desde la AWS CLI ejecución de su trabajo, ejecútelo start-job-run con la siguiente configuración:

{ "JobName": "<your job name>", "Arguments": { "--enable-auto-scaling": "true" }, "WorkerType": "G.2X", // G.1X and G.2X are allowed for Auto Scaling Jobs "NumberOfWorkers": 20, // represents Maximum number of workers ...other job run configurations... }

Una vez finalizada la ejecución de la ETL tarea, también puede realizar una llamada get-job-run para comprobar el uso real de los recursos de la ejecución de la tarea en DPU cuestión de segundos. Nota: el nuevo campo solo DPUSecondsse mostrará para sus trabajos por lotes en la AWS Glue versión 4.0 o versiones posteriores habilitadas con Auto Scaling. Este campo no es compatible con trabajos de streaming.

$ aws glue get-job-run --job-name your-job-name --run-id jr_xx --endpoint https://glue.us-east-1.amazonaws.com --region us-east-1 { "JobRun": { ... "GlueVersion": "3.0", "DPUSeconds": 386.0 } }

También puede configurar las ejecuciones de tareas con Auto Scaling utilizando la AWS Glue SDKmisma configuración.

Habilitación del escalado automático con sesiones interactivas

Para habilitar Auto Scaling al crear AWS Glue trabajos con sesiones interactivas, consulte Configuración de sesiones AWS Glue interactivas.

Sugerencias y consideraciones

Consejos y consideraciones para ajustar AWS Glue Auto Scaling con precisión:

  • En caso de que no tenga idea del valor inicial del número máximo de trabajadores, puede empezar con el cálculo aproximado que se explica en Estimate. AWS Glue DPU No debe configurar un valor extremadamente alto en el número máximo de trabajadores para un volumen de datos muy bajo.

  • AWS Glue Auto Scaling configura spark.sql.shuffle.partitions y spark.default.parallelism se basa en el número máximo de DPU (calculado con el número máximo de trabajadores y el tipo de trabajador) configurados en el trabajo. Si prefiere el valor fijo en esas configuraciones, puede sobrescribir estos parámetros con los siguientes parámetros de trabajo:

    • Clave: --conf

    • Valor: spark.sql.shuffle.partitions=200 --conf spark.default.parallelism=200

  • Para los trabajos de transmisión, de forma predeterminada, AWS Glue no se escala automáticamente dentro de los microlotes y se requieren varios microlotes para iniciar el escalado automático. En caso de que desee habilitar el escalado automático en microlotes, proporcione --auto-scale-within-microbatch. Para obtener más información, consulte Job parameter reference.

Monitorización de Auto Scaling con CloudWatch métricas de Amazon

Las métricas del CloudWatch ejecutor están disponibles para su AWS Glue Trabajos 3.0 o posteriores si habilita Auto Scaling. Las métricas se pueden utilizar para monitorear la demanda y la utilización optimizada de los ejecutores en sus aplicaciones Spark habilitadas con Auto Scaling. Para obtener más información, consulte Supervisión de AWS Glue con métricas de Amazon CloudWatch.

También puede utilizar las métricas de AWS Glue observabilidad para obtener información sobre la utilización de los recursos. Por ejemplo, al supervisar glue.driver.workerUtilization, puede supervisar la cantidad de recursos que se usó realmente con y sin el escalado automático. Por otro ejemplo, al supervisar glue.driver.skewness.job y glue.driver.skewness.stage, puede ver cómo están sesgados los datos. Esa información le ayudará a decidir si se habilita el escalado automático y se afinan las configuraciones. Para obtener más información, consulte Supervisión con Monitorización con métricas de observabilidad de AWS Glue.

  • pegamento. controlador. ExecutorAllocationManager.ejecutores. numberAllExecutors

  • pegado.driver. ExecutorAllocationManager.ejecutores. numberMaxNeededEjecutores

Para obtener más información sobre estas métricas, consulte Monitorización de la planificación de la capacidad de DPU.

nota

CloudWatch Las métricas del ejecutor no están disponibles para las sesiones interactivas.

Monitorización de Auto Scaling con CloudWatch métricas de Amazon.

Supervisión de Auto Scaling con Amazon CloudWatch Logs

Si utilizas sesiones interactivas, puedes monitorizar el número de ejecutores activando Amazon CloudWatch Logs de forma continua y buscando «ejecutor» en los registros, o bien mediante la interfaz de usuario de Spark. Para ello, utilice el comando mágico %%configure para habilitar el registro continuo junto con enable auto scaling.

%%configure{ "--enable-continuous-cloudwatch-log": "true", "--enable-auto-scaling": "true" }

En los CloudWatch eventos de Amazon Logs, busque «executor» en los registros:

Monitorización de Auto Scaling con CloudWatch métricas de Amazon.

Monitorear Auto Scaling con la IU de Spark

Con Auto Scaling habilitado, también puede monitorear la adición y eliminación de ejecutores con escalado dinámico hacia arriba y hacia abajo en función de la demanda de su AWS Glue trabajos mediante la interfaz de usuario de Glue Spark. Para obtener más información, consulte Habilitación de la interfaz de usuario web de Apache Spark para trabajos de AWS Glue.

Cuando usa sesiones interactivas desde el cuaderno de Jupyter, puede ejecutar el siguiente comando mágico para habilitar el escalado automático junto con la interfaz de usuario de Spark:

%%configure{ "--enable-auto-scaling": "true", "--enable-continuous-cloudwatch-log": "true" }
Monitoreo de Auto Scaling con la IU de Spark.

Supervisión del DPU uso de la ejecución de tareas de Auto Scaling

Puede usar la vista de ejecución de AWS Glue Studio tareas para comprobar el DPU uso de sus trabajos de Auto Scaling.

  1. Seleccione Supervisión en el panel AWS Glue Studio de navegación. Aparecerá la página Monitoring (Supervisión).

  2. Desplácese hacia abajo hasta el gráfico Job runs (Ejecuciones de trabajos).

  3. Navegue hasta la ejecución de trabajo que le interese y desplácese hasta la columna de DPU horas para comprobar el uso de la ejecución de trabajo específica.

Limitaciones

AWS Glue Auto Scaling de transmisión actualmente no admite una DataFrame unión de transmisión con una estática DataFrame creada fuera deForEachBatch. Una estática DataFrame creada dentro de él ForEachBatch funcionará según lo esperado.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.