Saltar al contenido

¿Cómo puedo reducir la cantidad de registros que genera mi trabajo de AWS Glue?

4 minutos de lectura
0

Mi trabajo de AWS Glue genera demasiados registros en Amazon CloudWatch. Quiero reducir la cantidad de registros generados.

Descripción corta

Los trabajos de extracción, transformación y carga (ETL) de Spark de AWS Glue generan muchos registros que puedes usar para supervisar los errores internos y diagnosticar los trabajos que fallan. No puedes controlar la cantidad de registros que generan los trabajos de AWS Glue en sus instancias, pero puedes ajustar el nivel de detalle de los registros.

Para ajustar el nivel de detalle del registro, utiliza los métodos siguientes:

  • Activa la configuración de filtro estándar para el registro continuo.
  • Usa el método de contexto setLogLevel.de Spark.
  • Utiliza un archivo log4j.properties personalizado.

Resolución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Activación de la configuración de filtro estándar para el registro continuo

Si has activado el registro continuo para tu trabajo, activa el filtro estándar para la opción de filtrado de registros.

Para activar este filtro, utiliza la AWS CLI para agregar los siguientes parámetros de trabajo:

'--enable-continuous-cloudwatch-log': 'true''--enable-continuous-log-filter': 'true'

Nota: El registro continuo de AWS Glue solo está disponible en AWS Glue 4.0 y versiones anteriores.

Uso del método de contexto setLogLevel de Spark

Puedes usar el método setLogLevel de pyspark.context.SparkContext para definir el nivel de registro para tu trabajo. Los niveles de registro válidos son ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE y WARN. Para obtener más información, consulta setLogLevel en el sitio web de Apache Spark.

Para importar el método de contexto de Spark y establecer el nivel de registro, agrega el siguiente código a tu trabajo de AWS Glue:

from pyspark.context import SparkContext
sc = SparkContext()
sc.setLogLevel("new-log-level")

Nota: Sustituye new-log-level por el nuevo nivel de registro. Este código afecta al comportamiento del registro del controlador, pero no cambia los registros del ejecutor.

Para obtener más información, consulta Configuring logging (Configuración del registro) en el sitio web de Apache Spark.

Uso de un archivo log4j.properties personalizado

AWS Glue 3.0 usa Log4j 1 para registrar el comportamiento y puedes personalizar estos comportamientos con el archivo log4j.properties. AWS Glue 4.0 usa Log4j 2 para el comportamiento de registro y puedes personalizar estos comportamientos con el archivo log4j2.properties. Para obtener más información sobre Log4j 2, consulta Configuration properties (Propiedades de configuración) en el sitio web de Apache Logging Services.

Nota: Si aplicas un archivo de configuración log4j.properties o log4j2.properties personalizado, AWS Glue desactiva el registro continuo. Además, las propiedades Log4j personalizadas solo están disponibles en AWS Glue 4.0 y versiones anteriores.

Puedes incluir tus preferencias de registro en el archivo log4j2.properties. A continuación, puedes cargar el archivo a Amazon Simple Storage Service (Amazon S3) y usarlo en el trabajo de AWS Glue.

Para usar un archivo de configuración personalizado en AWS Glue 4.0, sigue estos pasos:

  1. Crea un archivo llamado log4j2.properties para establecer el nivel del registrador raíz como error.
    Ejemplo de archivo log4j2.properties:

    rootLogger.level = error
    rootLogger.appenderRef.stdout.ref = STDOUT
    
    appender.console.type = Console
    appender.console.name = STDOUT
    appender.console.target = SYSTEM_ERR
    appender.console.layout.type = PatternLayout
    appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %p [%t] %c{2} (%F:%M(%L)): %m%n
  2. Carga el archivo log4j2.properties en Amazon S3 y copia la URI de S3 del archivo.

  3. En el trabajo de AWS Glue, agrega los siguientes parámetros:

    --extra-files, s3://[objectpath]/log4j2.properties

    Nota: Sustituye s3://[objectpath]/log4j.properties por la URI de S3 que has utilizado en el paso anterior.

  4. Guarda el trabajo de AWS Glue y ejecútalo.

  5. Comprueba la secuencia de registro relacionada en el grupo de registros /aws-glue/jobs/error.

Información relacionada

Supervisión con Amazon CloudWatch

OFICIAL DE AWSActualizada hace 4 meses