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.
Protokollieren von Spark-Anwendungsereignissen in Athena
Der Athena-Notebook-Editor ermöglicht die Standardprotokollierung von Jupyter, Spark und Python. Sie können df.show()
sie zur Anzeige von PySpark DataFrame Inhalten oder print("Output")
zur Anzeige von Werten in der Zellenausgabe verwenden. Die stdout
-, stderr
-, und results
-Ausgaben für Ihre Berechnungen werden in den Bucket-Speicherort Ihrer Abfrageergebnisse in Amazon S3 geschrieben.
Spark-Anwendungsereignisse bei Amazon protokollieren CloudWatch
Ihre Athena-Sitzungen können auch Protokolle für das Konto, das Sie verwenden, an Amazon CloudWatch schreiben.
Grundlegendes zu Protokollstreams und Protokollgruppen
CloudWatch organisiert die Protokollaktivitäten in Protokollstreams und Protokollgruppen.
Protokollstreams — Ein CloudWatch Protokollstream ist eine Abfolge von Protokollereignissen, die dieselbe Quelle haben. Jede einzelne Protokollquelle in CloudWatch Logs bildet einen separaten Protokollstream.
Protokollgruppen — In CloudWatch Logs ist eine Protokollgruppe eine Gruppe von Protokollstreams, die dieselben Einstellungen für Aufbewahrung, Überwachung und Zugriffskontrolle verwenden.
Es gibt keine Begrenzung dazu, wie viele Protokollstreams zu einer Protokollgruppe gehören können.
Wenn Sie in Athena zum ersten Mal eine Notebook-Sitzung starten, erstellt Athena eine Protokollgruppe, die den Namen Ihrer Spark-fähigen Arbeitsgruppe verwendet, wie im CloudWatch folgenden Beispiel.
/aws-athena/workgroup-name
Diese Protokollgruppe erhält einen Protokollstream für jeden Executor in Ihrer Sitzung, der mindestens ein Protokollereignis erzeugt. Ein Executor ist die kleinste Recheneinheit, die eine Notebook-Sitzung von Athena anfragen kann. In CloudWatch beginnt der Name des Protokollstreams mit der Sitzungs-ID und der Executor-ID.
Weitere Informationen zu CloudWatch Protokollgruppen und Log-Streams finden Sie unter Working with log groups and log streams im Amazon CloudWatch Logs-Benutzerhandbuch.
Verwenden von Standard-Protokollierungsobjekten in Athena für Spark
In einer Athena for Spark-Sitzung können Sie die folgenden zwei globalen Standard-Logger-Objekte verwenden, um Logs in Amazon CloudWatch zu schreiben:
-
athena_user_logger — Sendet Protokolle nur an. CloudWatch Verwenden Sie dieses Objekt, wenn Sie Informationen direkt in Ihre Spark-Anwendungen protokollieren möchten CloudWatch, wie im folgenden Beispiel.
athena_user_logger.info("CloudWatch log line.")
Im Beispiel wird ein Protokollereignis CloudWatch wie folgt geschrieben:
AthenaForApacheSpark: 2022-01-01 12:00:00,000 INFO builtins: CloudWatch log line.
-
athena_shared_logger — Sendet dasselbe Protokoll sowohl an als auch zu CloudWatch Supportzwecken. AWS Sie können dieses Objekt verwenden, um Protokolle zur Fehlerbehebung an AWS Serviceteams weiterzugeben, wie im folgenden Beispiel gezeigt.
athena_shared_logger.info("Customer debug line.") var = [...some variable holding customer data...] athena_shared_logger.info(var)
Das Beispiel protokolliert die
debug
Zeile und den Wert dervar
Variablen in CloudWatch Logs und sendet eine Kopie jeder Zeile an AWS Support.Anmerkung
Aus Datenschutzgründen werden Ihr Berechnungscode und Ihre Ergebnisse nicht an Dritte weitergegeben AWS. Stellen Sie sicher, dass Ihre Aufrufe an
athena_shared_logger
nur die Informationen schreiben, die Sie für AWS Support sichtbar machen möchten.
Die bereitgestellten Protokollierer schreiben Ereignisse über Apache Log4jDEBUG
, ERROR
, FATAL
, INFO
und WARN
oder WARNING
. Sie können die entsprechend benannte Funktion auf dem Protokollierer verwenden, um diese Werte zu erzeugen.
Anmerkung
Verknüpfen Sie die Namen athena_user_logger
oder athena_shared_logger
nicht neu. Dadurch können die Protokollierungsobjekte CloudWatch für den Rest der Sitzung nicht mehr aufgerufen werden.
Beispiel: Protokollieren von Notizbuchereignissen in CloudWatch
Das folgende Verfahren zeigt, wie Athena-Notebook-Ereignisse in Amazon CloudWatch Logs protokolliert werden.
Um Athena-Notebook-Ereignisse in Amazon CloudWatch Logs zu protokollieren
-
Befolgen Sie Erste Schritte mit Apache Spark auf Amazon Athena, um eine Spark-fähige Arbeitsgruppe in Athena mit einem eindeutigen Namen zu erstellen. In diesem Tutorial wird der Arbeitsgruppenname
athena-spark-example
verwendet. -
Folgen Sie den Schritten unter Erstellen Ihres eigenen Notebooks, um ein Notebook zu erstellen und eine neue Sitzung zu starten.
-
Geben Sie im Athena-Notebook-Editor in einer neuen Notebook-Zelle den folgenden Befehl ein:
athena_user_logger.info("Hello world.")
-
Führen Sie die Zelle aus.
-
Rufen Sie die aktuelle Sitzungs-ID ab, indem Sie eine der folgenden Aktionen ausführen:
-
Zeigen Sie die Zellenausgabe an (z. B .
... session=72c24e73-2c24-8b22-14bd-443bdcd72de4
). -
Führen Sie in einer neuen Zelle den Magic-Befehl
%session_id
aus.
-
-
Speichern Sie die Sitzungs-ID.
-
Öffnen Sie mit derselben Konsole AWS-Konto , die Sie für die Ausführung der Notebook-Sitzung verwenden, die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/
. -
Wählen Sie im Navigationsbereich der CloudWatch Konsole die Option Protokollgruppen aus.
-
Wählen Sie in der Liste von Protokollgruppen die Protokollgruppe aus, die den Namen Ihrer Spark-fähigen Athena-Arbeitsgruppe trägt, wie im folgenden Beispiel gezeigt.
/aws-athena/athena-spark-example
Der Abschnitt Protokollstreams enthält eine Liste mit einem oder mehreren Protokollstream-Links für die Arbeitsgruppe. Jeder Protokollstream-Name enthält die Sitzungs-ID, die Executor-ID und die eindeutige UUID, getrennt durch Schrägstriche.
Wenn die Sitzungs-ID beispielsweise
5ac22d11-9fd8-ded7-6542-0412133d3177
und die Executor-IDf8c22d11-9fd8-ab13-8aba-c4100bfba7e2
lautet, ähnelt der Name des Protokollstreams dem folgenden Beispiel.5ac22d11-9fd8-ded7-6542-0412133d3177/f8c22d11-9fd8-ab13-8aba-c4100bfba7e2/f012d7cb-cefd-40b1-90b9-67358f003d0b
-
Wählen Sie den Protokollstream-Link für Ihre Sitzung aus.
-
Rufen Sie auf der Seite Log events (Protokollereignisse) die Spalte Message (Nachricht) auf.
Das Protokollereignis für die Zelle, die Sie ausgeführt haben, sieht folgendermaßen aus:
AthenaForApacheSpark: 2022-01-01 12:00:00,000 INFO builtins: Hello world.
-
Kehren Sie zum Athena-Notebook-Editor zurück.
-
Geben Sie in einer neuen Zelle den folgenden Code ein. Der Code protokolliert eine Variable in CloudWatch:
x = 6 athena_user_logger.warn(x)
-
Führen Sie die Zelle aus.
-
Kehren Sie zur CloudWatch Konsolenseite „Ereignisse protokollieren“ für denselben Protokollstream zurück.
-
Der Protokollstream enthält nun einen Eintrag für ein Protokollereignis mit einer Meldung wie der folgenden:
AthenaForApacheSpark: 2022-01-01 12:00:00,000 WARN builtins: 6