Comment réduire la quantité de journaux générés par ma tâche AWS Glue ?

Date de la dernière mise à jour : 29/07/2021

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.

Résolution

Avec les tâches ETL Spark AWS Glue, vous ne pouvez pas contrôler la verbosité des journaux générés par les instances sur lesquelles les tâches AWS Glue sont exécutées. Les journaux sont verbeux de sorte qu'ils peuvent être utilisés pour surveiller les défaillances internes et aider à diagnostiquer les échecs des tâches. Toutefois, vous pouvez définir les niveaux de journalisation Spark en procédant comme suit :

Choisir le paramètre de filtre standard pour la journalisation continue

Si vous avez activé la journalisation continue pour votre tâche, choisissez le filtre Standard pour l'option Log filtering(filtrage des journaux). Ce filtre peut vous aider à réduire les messages inutiles du pilote ou de l'exécuteur Apache Spark et des messages de journaux heartbeat Apache Hadoop YARN. Pour modifier le paramètre de filtre de journaux de votre tâche AWS Glue, procédez comme suit :

  1. Ouvrez la console AWS Glue.
  2. Dans le panneau de navigation, choisissez Jobs (Tâches).
  3. Sélectionnez la tâche à mettre à jour.
  4. Choisissez Action, puis Edit job (Modifier la tâche).
  5. Développez la section Monitoring options (Options de surveillance).
  6. Sélectionnez Continuous logging (Journalisation continue).
  7. Sous Log filtering (Filtrage des journaux), sélectionnez Standard filter (Filtre standard).
  8. Choisissez Save (Enregistrer).

Pour modifier ce paramètre depuis AWS Command Line Interface (AWS CLI), utilisez la commande suivante :

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

Remarque : si vous recevez des erreurs lors de l'exécution de commandes AWS CLI, vérifiez que vous utilisez la version la plus récente d'AWS CLI.

Pour plus d'informations, consultez la section Activation de la journalisation continue pour les tâches AWS Glue.

Important : même avec le paramètre de filtre standard, les journaux principaux d'application pour les tâches Spark sont toujours transférés vers les groupes /aws-glue/jobs/output et /aws-glue/jobs/error log.

Définir le niveau de journalisation en utilisant la méthode contextuelle Spark setLogLevel

Vous pouvez définir le niveau de journalisation de votre tâche à l'aide de la méthode setLogLevel de pyspark.context.SparkContext. Les niveaux de journalisation valides incluent ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE et WARN. Pour plus d'informations, consultez la section setLogLevel de la documentation de Spark.

Utilisez le code suivant pour importer la méthode de contexte Spark et définir le niveau de journalisation de votre tâche :

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

Remarque : assurez-vous de remplacer new-log-level par le niveau de journalisation que vous souhaitez définir pour votre tâche.

Pour plus d'informations, consultez la section Configuration de la journalisation de la documentation de Spark.

Utiliser un fichier log4j.properties personnalisé pour définir le niveau de journalisation

Spark utilise les configurations log4j pour la journalisation. Vous pouvez inclure les préférences de journalisation dans un fichier log4j.properties, télécharger le fichier sur Amazon Simple Storage Service (Amazon S3) et utiliser le fichier dans la tâche AWS Glue.

Pour référencer le fichier Amazon S3 dans la tâche, procédez comme suit :

  1. Ouvrez la console AWS Glue.
  2. Dans le panneau de navigation, choisissez Jobs (Tâches).
  3. Sélectionnez la tâche dans laquelle vous souhaitez référencer le fichier.
  4. Choisissez Actions, puis Edit job (Modifier la tâche).
  5. Développez la section Configuration de la sécurité, bibliothèques de scripts et paramètres de tâche (facultatif).
  6. Pour Referenced files path (Chemin d'accès aux fichiers référencés), collez le chemin S3 complet où vous avez stocké le fichier lo4j.properties.

Pour plus d'informations, consultez la section Fournir vos propres scripts personnalisés.

Pour obtenir un exemple de fichier log4j.properties, consultez log4j.properties.template dans le référentiel GitHub d'Apache Spark.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?