View a markdown version of this page

Verwenden der Rotation des Spark-Ereignisprotokolls - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden der Rotation des Spark-Ereignisprotokolls

Mit Amazon EMR 6.3.0 und höher können Sie das Feature zur Rotation des Spark-Ereignisprotokolls für Amazon EMR in EKS aktivieren. Anstatt eine einzelne Ereignisprotokolldatei zu generieren, rotiert dieses Feature die Datei auf der Grundlage Ihres konfigurierten Zeitintervalls und entfernt die ältesten Ereignisprotokolldateien.

Durch das Rotieren von Spark-Ereignisprotokollen können Sie potenzielle Probleme mit einer großen Spark-Ereignisprotokolldatei vermeiden, die für Aufträge mit langer Laufzeit oder Streaming-Aufträge generiert wird. Sie starten beispielsweise einen Spark-Auftrag mit langer Laufzeit und einem mit dem persistentAppUI-Parameter aktivierten Ereignisprotokoll. Der Spark-Treiber generiert eine Ereignisprotokolldatei. Wenn der Auftrag stunden- oder tagelang ausgeführt wird und der Speicherplatz auf dem Kubernetes-Knoten begrenzt ist, kann die Ereignisprotokolldatei den gesamten verfügbaren Speicherplatz beanspruchen. Das Aktivieren des Spark-Features zur Rotation des Ereignisprotokolls löst das Problem, indem die Protokolldatei in mehrere Dateien aufgeteilt und die ältesten Dateien entfernt werden.

Anmerkung

Dieses Feature funktioniert nur mit Amazon EMR in EKS. Amazon EMR, das in Amazon EC2 ausgeführt wird, unterstützt die Rotation des Spark-Ereignisprotokolls nicht.

Anmerkung

In Amazon EMR auf EKS begrenzt die zeitbasierte Ereignisprotokoll-Rotation (die auf dieser Seite beschriebenen spark.eventLog.rotation.* Parameter) das Wachstum des Spark-Ereignisprotokolls auf der Grundlage eines Zeitintervalls und ist der unterstützte Mechanismus dafür. Das größenbasierte rollende Open-Source-Ereignisprotokoll (spark.eventLog.rolling.*) wird für das Hochladen von Ereignisprotokollen auf Amazon EMR auf EKS nicht unterstützt. Wenn Rolling aktiviert ist, schreibt der Spark-Treiber größenbasierte Segmentdateien. Die von Amazon EMR on EKS verwaltete Komponente für den Protokollversand (der Agent, der Ereignisprotokolle hochlädt, sodass Anwendungen auf dem Spark History Server angezeigt werden) sammelt diese Dateien nicht. Daher erscheint die Anwendung nicht auf dem Spark History Server, obwohl der Job erfolgreich ausgeführt wird.

Wenn Ihre Eventlogs nicht auf dem Spark History Server erscheinen, überprüfen Sie, ob diese Option gesetzt spark.eventLog.rolling.enabled ist, und wechseln Sie zur Rotation der Event-Logs, wie im folgenden Abschnitt beschrieben.

Um das Feature zur Rotation des Spark-Ereignisprotokolls zu aktivieren, konfigurieren Sie die folgenden Spark-Parameter:

  • spark.eventLog.rotation.enabled – aktiviert die Protokoll-Rotation. Standardmäßig ist die Rückverfolgungsverwaltung in der Spark-Konfigurationsdatei deaktiviert. Stellen Sie diese auf true ein, um dieses Feature zu aktivieren.

  • spark.eventLog.rotation.interval – gibt das Zeitintervall für die Protokollrotation an. Der Mindestwert beträgt 60 Sekunden. Der Standardwert beträgt 300 Sekunden.

  • spark.eventLog.rotation.minFileSize – gibt eine Mindestdateigröße für die Rotation der Protokolldatei an. Der Mindest- und Standardwert beträgt 1 MB.

  • spark.eventLog.rotation.maxFilesToRetain – gibt an, wie viele rotierte Protokolldateien während der Bereinigung beibehalten werden sollen. Der gültige Bereich ist 1 bis 10. Der Standardwert lautet 2.

Sie können diese Parameter im sparkSubmitParameters-Abschnitt der StartJobRun-API angeben, wie das folgende Beispiel zeigt.

"sparkSubmitParameters": "--class org.apache.spark.examples.SparkPi --conf spark.eventLog.rotation.enabled=true --conf spark.eventLog.rotation.interval=300 --conf spark.eventLog.rotation.minFileSize=1m --conf spark.eventLog.rotation.maxFilesToRetain=2"

Migration vom fortlaufenden Event-Log zur Rotation

Wenn Sie derzeit das größenbasierte rollende Open-Source-Ereignisprotokoll verwenden, ersetzen Sie die Parameter durch die spark.eventLog.rolling.* Rotationsparameter. Die Rotation begrenzt das Ereignisprotokoll durch ein Zeitintervall (mit einer Mindestdateigröße) und nicht nur durch die Dateigröße. Wählen Sie daher ein Intervall und eine Mindestdateigröße, die der Ereignisrate Ihres Jobs entsprechen. Entfernen Sie alle spark.eventLog.rolling.* Einstellungen, wenn Sie wechseln. In der folgenden Tabelle werden die einzelnen Rollparameter den entsprechenden Rotationsparametern zugeordnet.

Rollparameter (nicht unterstützt) Rotationsparameter (unterstützt)
spark.eventLog.rolling.enabled=true spark.eventLog.rotation.enabled=true
spark.eventLog.rolling.maxFileSize(Großbuchstaben nach Größe) spark.eventLog.rotation.interval(Großbuchstaben nach Zeit; mindestens 60 Sekunden, Standard 300 Sekunden), verwendet mit spark.eventLog.rotation.minFileSize (mindestens und standardmäßig 1 MB)
spark.eventLog.rolling.maxFilesToRetain spark.eventLog.rotation.maxFilesToRetain(gültiger Bereich 1 bis 10, Standard 2)