Utilizar Auto Scaling para AWS Glue - AWS Glue

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Utilizar Auto Scaling para AWS Glue

Auto Scaling está disponible para trabajos de ETL y streaming de AWS Glue con AWS Glue versión 3.0 o posterior.

Con Auto Scaling habilitado, obtendrá los siguientes beneficios:

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

  • Elimina la necesidad de experimentar y decidir el número de empleados que asignará a sus trabajos de ETL de AWS Glue.

  • Si elije el número máximo de empleados, AWS Glue elegirá el tamaño correcto de recursos para la carga de trabajo.

  • Puede ver cómo cambia el tamaño del clúster durante la ejecución del trabajo si mira las métricas de CloudWatch en la página de detalles de ejecución de trabajo de AWS Glue Studio.

Auto Scaling para trabajos de ETL de AWS Glue y streaming permite escalado vertical y reducción vertical bajo demanda de los recursos informáticos de sus trabajos de AWS Glue. 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 la reducción vertical dinámica de los recursos de trabajo de AWS Glue durante el transcurso 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 Auto Scaling ayuda con el costo y la utilización de sus aplicaciones Spark incluyen un controlador de Spark que enumera un gran número de archivos en Amazon S3 o realiza una carga mientras los ejecutores se encuentran inactivos, etapas en las que Spark se ejecuta con solo unos pocos ejecutores debido al sobreaprovisionamiento y sesgos de datos o demanda de cálculo desigual en todas las etapas de Spark.

Requisitos

El escalado automático solo se encuentra disponible para la versión 3.0 o posterior de AWS Glue. Para utilizar el escalado automático, puede seguir la guía de migración a fin de migrar los trabajos existentes a la versión 3.0 o posterior de AWS Glue, o bien crear trabajos nuevos con la versión 3.0 o posterior de AWS Glue.

El escalado automático se encuentra disponible para trabajos de AWS Glue con los tipos de trabajador G.1X, G.2X, G.4X, G.8X o G.025X (solo con trabajos de streaming). No se admiten las DPU estándar.

Habilitar Auto Scaling en AWS Glue Studio

En la página Job details (Detalles del trabajo) en AWS Glue Studio, elija el tipo como Spark o Spark Streaming y Glue version (Versión de Glue) como Glue 3.0 o Glue 4.0. A continuación, se mostrará una casilla de verificación debajo de Worker type (Tipo de empleado).

  • 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.

Habilitar y configurar Auto Scaling en AWS Glue Studio.

Habilitación de Auto Scaling con AWS CLI o SDK

Para habilitar Auto Scaling desde la AWS CLI para la ejecución de un trabajo, ejecute 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 que haya finalizado la ejecución de un trabajo de ETL, también puede llamar a get-job-run para comprobar el uso real de recursos de la ejecución del trabajo en segundos de DPU. Nota: El nuevo campo DPUSeconds solo se mostrará para los trabajos por lotes en AWS Glue 3.0 o posterior con el escalado automático habilitado. 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 se pueden configurar ejecuciones de trabajos con Auto Scaling mediante el AWS Glue SDK con la misma configuración.

Monitorear Auto Scaling con las métricas de Amazon CloudWatch.

Las métricas de ejecutor de CloudWatch se encuentran disponibles para sus trabajos de AWS Glue 3.0 o posterior si habilita el escalado automático. 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.

  • glue.driver.ExecutorAllocationManager.executors.numberAllExecutors

  • glue.driver.ExecutorAllocationManager.executors.numberMaxNeededExecutors

Monitorear Auto Scaling con las métricas de Amazon CloudWatch.

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

Monitorear Auto Scaling con la IU de Spark

Con Auto Scaling habilitado, también puede supervisar los ejecutores que se agregan y eliminan con escalado vertical y reducción vertical dinámicos en función de la demanda de sus trabajos de AWS Glue mediante la IU 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.

Monitoreo de Auto Scaling con la IU de Spark.

Supervisión del uso de DPU en ejecución de trabajos de Auto Scaling

Puede utilizar la Vista de ejecución de trabajos de AWS Glue Studio para comprobar el uso de DPU de los trabajos de escalado automático.

  1. Elija Supervisión en el panel de navegación de AWS Glue Studio. 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 del trabajo que le interese y desplácese hasta la columna DPU hours (Horas de DPU) para comprobar el uso de la ejecución del trabajo en cuestión.

Limitaciones

En la actualidad, el streaming de AWS Glue de Auto Scaling no soporta una unión de DataFrame en streaming con un DataFrame estático creado fuera de ForEachBatch. Un DataFrame estático creado dentro de ForEachBatch funcionará según lo previsto.