Amplíe la capacidad del clúster -

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.

Amplíe la capacidad del clúster

Si tu trabajo te lleva demasiado tiempo, pero los ejecutores consumen suficientes recursos y Spark crea un gran volumen de tareas en relación con los núcleos disponibles, considera la posibilidad de ampliar la capacidad del clúster. Para evaluar si esto es apropiado, usa las siguientes métricas.

CloudWatch métricas

  • Compruebe la CPUcarga y el uso de la memoria para determinar si los ejecutores consumen recursos suficientes.

  • Compruebe cuánto tiempo ha durado el trabajo para evaluar si el tiempo de procesamiento es demasiado largo para cumplir sus objetivos de rendimiento.

En el siguiente ejemplo, cuatro ejecutores se ejecutan con una CPU carga superior al 97 por ciento, pero el procesamiento no se ha completado después de unas tres horas.

""
nota

Si la CPU carga es baja, es probable que no se beneficie de la ampliación de la capacidad del clúster.

Interfaz de usuario de Spark

En la pestaña Trabajo o Etapa, puede ver el número de tareas de cada trabajo o etapa. En el siguiente ejemplo, Spark ha creado 58100 tareas.

Las etapas de todos los trabajos muestran una etapa y 58.100 tareas.

En la pestaña Ejecutor, puedes ver el número total de ejecutores y tareas. En la siguiente captura de pantalla, cada ejecutor de Spark tiene cuatro núcleos y puede realizar cuatro tareas simultáneamente.

Tabla de ejecutores que muestra la columna Núcleos.

En este ejemplo, el número de tareas de Spark (58100)es mucho mayor que las 16 tareas que los ejecutores pueden procesar simultáneamente (4 ejecutores × 4 núcleos).

Si observas estos síntomas, considera la posibilidad de escalar el clúster. Puede escalar la capacidad del clúster mediante las siguientes opciones:

  • Activar AWS Glue Auto Scaling: Auto Scaling está disponible para sus trabajos de AWS Glue extracción, transformación, carga (ETL) y streaming en la AWS Glue versión 3.0 o posterior. AWS Glue agrega y elimina automáticamente trabajadores del clúster en función del número de particiones en cada etapa o de la velocidad a la que se generan los microlotes durante la ejecución del trabajo.

    Si observa una situación en la que el número de trabajadores no aumenta aunque Auto Scaling esté activado, considere agregar trabajadores manualmente. Sin embargo, tenga en cuenta que escalar manualmente para una etapa puede provocar que muchos trabajadores permanezcan inactivos durante las etapas posteriores, lo que podría costar más y no aumentar el rendimiento.

    Después de activar Auto Scaling, puede ver el número de ejecutores en las métricas del CloudWatch ejecutor. Usa las siguientes métricas para monitorear la demanda de ejecutores en las aplicaciones de Spark:

    • glue.driver.ExecutorAllocationManager.executors.numberAllExecutors

    • glue.driver.ExecutorAllocationManager.executors.numberMaxNeededExecutors

    Para obtener más información sobre las métricas, consulta Cómo monitorizar AWS Glue con CloudWatch las métricas de Amazon.

  • Amplíe la escala: aumente la cantidad de AWS Glue trabajadores: puede aumentar la cantidad de AWS Glue trabajadores manualmente. Agregue trabajadores solo hasta que observe a los trabajadores inactivos. En ese momento, agregar más trabajadores aumentará los costos sin mejorar los resultados. Para obtener más información, consulte Paralelizar tareas.

  • Amplíe: utilice un tipo de trabajador más grande: puede cambiar manualmente el tipo de instancia de sus AWS Glue trabajadores para utilizar trabajadores con más núcleos, memoria y almacenamiento. Los tipos de trabajadores más grandes le permiten escalar verticalmente y ejecutar tareas de integración de datos intensivas, como transformaciones de datos que consumen mucha memoria, agregaciones asimétricas y comprobaciones de detección de entidades con petabytes de datos.

    La ampliación también es útil en los casos en que el controlador de Spark necesita una mayor capacidad, por ejemplo, porque el plan de búsqueda de empleo es bastante amplio. Para obtener más información sobre los tipos de trabajadores y su rendimiento, consulte la entrada del blog sobre AWS macrodatos: escale sus trabajos AWS Glue para Apache Spark con nuevos tipos de trabajadores más grandes, G.4X y G.8X.

    El uso de trabajadores más grandes también puede reducir la cantidad total de trabajadores necesarios, lo que aumenta el rendimiento al reducir la confusión en operaciones intensivas, como la incorporación de personal.