Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Wie reduziere ich die Anzahl der Protokolle, die mein AWS Glue-Job generiert?
Mein AWS Glue-Job generiert zu viele Protokolle in Amazon CloudWatch. Ich möchte die Anzahl der generierten Protokolle reduzieren.
Kurzbeschreibung
AWS Glue Spark Extract/Transform/Load (ETL)-Jobs generieren eine Vielzahl von Protokollen, die du verwenden kannst, um interne Fehler zu überwachen und fehlgeschlagene Jobs zu diagnostizieren. Du kannst die Anzahl der Protokolle, die AWS Glue-Jobs auf ihren Instances generieren, nicht kontrollieren, aber du kannst die Ausführlichkeit der Protokolle anpassen.
Verwende die folgenden Methoden, um die Ausführlichkeit des Protokolls anzupassen:
- Aktiviere die Standardfiltereinstellung für die kontinuierliche Protokollierung.
- Verwende die Spark-Kontextmethode setLogLevel.
- Verwende eine benutzerdefinierte log4j.properties-Datei.
Lösung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Standardfiltereinstellung für die kontinuierliche Protokollierung aktivieren
Wenn du die kontinuierliche Protokollierung für deinen Job aktiviert hast, aktiviere den Standardfilter für die Option Protokollfilterung.
Um diesen Filter zu aktivieren, füge mithilfe der AWS-CLI die folgenden Jobparameter hinzu:
'--enable-continuous-cloudwatch-log': 'true''--enable-continuous-log-filter': 'true'
Hinweis: Die kontinuierliche Protokollierung von AWS Glue ist nur in AWS Glue 4.0 und früher verfügbar.
Spark-Kontextmethode setLogLevel verwenden
Du kannst die setLogLevel-Methode von pyspark.context.SparkContext verwenden, um die Protokollierungsstufe für deinen Job festzulegen. Gültigen Protokollierungsstufen sind ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE und WARN. Weitere Informationen findest du unter setLogLevel auf der Apache Spark-Website.
Um die Spark-Kontextmethode zu importieren und die Protokollierungsstufe festzulegen, füge deinem AWS Glue-Job den folgenden Code hinzu:
from pyspark.context import SparkContext sc = SparkContext() sc.setLogLevel("new-log-level")
Hinweis: Ersetze new-log-level durch deine neue Protokollierungsstufe. Dieser Code wirkt sich auf das Verhalten des Treiberprotokolls aus, ändert jedoch nicht die Executor-Protokolle.
Weitere Informationen findest du unter Konfigurieren der Protokollierung auf der Apache Spark-Website.
Benutzerdefinierte log4j.properties-Datei verwenden
AWS Glue 3.0 verwendet Log4j 1 für die Protokollierung des Verhaltens und du kannst dieses Verhalten mit der Datei log4j.properties anpassen. AWS Glue 4.0 verwendet Log4j 2 für die Protokollierung des Verhaltens und du kannst dieses Verhalten mit der Datei log4j2.properties anpassen. Weitere Informationen zu Log4j 2 findest du unter Konfigurationseigenschaften auf der Apache Logging Services-Website.
Hinweis: Wenn du eine benutzerdefinierte log4j.properties- oder log4j2.properties-Konfigurationsdatei anwendest, deaktiviert AWS Glue die kontinuierliche Protokollierung. Außerdem sind benutzerdefinierte Log4j-Eigenschaften nur in AWS Glue 4.0 und früheren Versionen verfügbar.
Du kannst deine Protokollierungseinstellungen in die Datei log4j2.properties aufnehmen. Anschließend kannst du die Datei auf Amazon Simple Storage Service (Amazon S3) hochladen und die Datei im AWS Glue-Job verwenden.
Gehe wie folgt vor, um eine benutzerdefinierte Konfigurationsdatei in AWS Glue 4.0 zu verwenden:
-
Erstelle eine Datei mit dem Namen log4j2.properties, um die Root-Logger-Ebene als Fehler festzulegen.
Beispiel für eine log4j2.properties-Datei: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 -
Lade die Datei log4j2.properties auf Amazon S3 hoch und kopiere die S3-URI der Datei.
-
Füge im AWS Glue-Job die folgenden Parameter hinzu:
--extra-files, s3://[objectpath]/log4j2.propertiesHinweis: Ersetze s3://[objectpath]/log4j.properties durch die S3-URI, die du im vorherigen Schritt verwendet hast.
-
Speichere den AWS Glue-Job und führe ihn aus.
-
Überprüfe den zugehörigen Protokollstream in der Protokollgruppe /aws-glue/jobs/error.
Ähnliche Informationen

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr