Passer au contenu

Comment puis-je réduire le nombre de journaux générés par ma tâche AWS Glue ?

Lecture de 4 minute(s)
0

Ma tâche AWS Glue génère trop de journaux dans Amazon CloudWatch. Je souhaite réduire le nombre de journaux générés.

Brève description

Les tâches Extract/Transform/Load (ETL) d’AWS Glue Spark génèrent de nombreux journaux que vous pouvez utiliser pour surveiller les échecs internes et diagnostiquer les tâches qui échouent. Vous ne pouvez pas contrôler le nombre de journaux que les tâches AWS Glue génèrent sur leurs instances, mais vous pouvez ajuster la verbosité des journaux.

Pour ajuster la verbosité du journal, appliquez les méthodes suivantes :

  • Activez le paramètre de filtre standard pour une journalisation continue.
  • Utilisez la méthode contextuelle Spark SetLogLevel.
  • Utilisez un fichier log4j.properties personnalisé.

Résolution

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.

Activer le paramètre de filtre standard pour une journalisation continue

Si vous avez activé la journalisation continue pour votre tâche, activez le filtre standard pour l'option Filtrage des journaux.

Pour activer ce filtre, utilisez l'AWS CLI pour ajouter les paramètres de tâche suivants :

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

Remarque : La journalisation continue d'AWS Glue est disponible uniquement dans AWS Glue 4.0 et versions antérieures.

Utiliser la méthode contextuelle Spark SetLogLevel

Vous pouvez utiliser la méthode setLogLevel de pyspark.context.SparkContext pour définir le niveau de journalisation de votre tâche. Les niveaux de journalisation valides incluent ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE et WARN. Pour plus d'informations, consultez la page SetLogLevel sur le site Web d'Apache Spark.

Pour importer la méthode contextuelle Spark et définir le niveau de journalisation, ajoutez le code suivant à votre tâche AWS Glue :

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

Remarque : Remplacez new-log-level par votre nouveau niveau de journalisation. Ce code affecte le comportement des journaux du pilote mais ne modifie pas les journaux de l'exécuteur.

Pour plus d'informations, consultez la page Configuration de la journalisation sur le site Web d'Apache Spark.

Utiliser un fichier log4j.properties personnalisé

AWS Glue 3.0 utilise Log4j 1 pour la journalisation des comportements, et vous pouvez personnaliser ces comportements à l'aide du fichier log4j.properties. AWS Glue 4.0 utilise Log4j 2 pour le comportement de journalisation et vous pouvez personnaliser ces comportements à l'aide du fichier log4j2.properties. Pour plus d'informations sur Log4j 2, consultez la page Propriétés de configuration sur le site Web d'Apache Logging Services.

Remarque : Si vous appliquez un fichier de configuration log4j.properties ou log4j2.properties personnalisé, AWS Glue désactive la journalisation continue. De plus, les propriétés Log4j personnalisées ne sont disponibles que dans AWS Glue 4.0 et versions antérieures.

Vous pouvez inclure vos préférences de journalisation dans le fichier log4j2.properties. Vous pouvez ensuite charger le fichier sur Amazon Simple Storage Service (Amazon S3) et l'utiliser dans la tâche AWS Glue.

Pour utiliser un fichier de configuration personnalisé dans AWS Glue 4.0, procédez comme suit :

  1. Créez un fichier nommé log4j2.properties pour définir le niveau d’enregistreur racine comme erreur.
    Exemple de fichier 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. Chargez le fichier log4j2.properties sur Amazon S3 et copiez l'URI S3 du fichier.

  3. Dans la tâche AWS Glue, ajoutez les paramètres suivants :

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

    Remarque : Remplacez s3://[objectpath]/log4j.properties par l'URI S3 que vous avez utilisé à l'étape précédente.

  4. Enregistrez la tâche AWS Glue et exécutez-la.

  5. Vérifiez le flux de journaux correspondant dans le groupe de journaux /aws-glue/jobs/error.

Informations connexes

Surveillance avec Amazon CloudWatch

AWS OFFICIELA mis à jour il y a 5 mois