

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.

# Spark-Anwendungsereignisse in Athena protokollieren
<a name="notebooks-spark-logging"></a>

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
<a name="notebooks-spark-logging-logging-spark-application-events-to-amazon-cloudwatch"></a>

Ihre Athena-Sitzungen können auch Protokolle für das Konto, das Sie verwenden, an [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) schreiben.

### Grundlegendes zu Protokollstreams und Protokollgruppen
<a name="notebooks-spark-logging-understanding-log-streams-and-log-groups"></a>

CloudWatch organisiert die Protokollaktivitäten in Protokollstreams und Protokollgruppen.

**Protokollstreams** — Ein CloudWatch Protokollstream ist eine Folge 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) im Amazon CloudWatch Logs-Benutzerhandbuch.

### Verwenden von Standard-Protokollierungsobjekten in Athena für Spark
<a name="notebooks-spark-logging-using-standard-logger-objects-in-athena-for-spark"></a>

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 der `var` Variablen in CloudWatch Logs und sendet eine Kopie jeder Zeile an 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 Support sichtbar machen möchten.

Die bereitgestellten Protokollierer schreiben Ereignisse über [Apache Log4j](https://logging.apache.org/log4j/) und erben die Protokollierungsebenen dieser Schnittstelle. Mögliche Werte für die Protokollebene sind `DEBUG`, `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: Notizbuchereignisse protokollieren in CloudWatch
<a name="notebooks-spark-logging-example-logging-notebook-events-to-cloudwatch"></a>

Das folgende Verfahren zeigt, wie Athena-Notebook-Ereignisse in Amazon CloudWatch Logs protokolliert werden.

**Um Athena-Notebook-Ereignisse in Amazon CloudWatch Logs zu protokollieren**

1. Befolgen Sie [Erste Schritte mit Apache Spark auf Amazon Athena](notebooks-spark-getting-started.md), um eine Spark-fähige Arbeitsgruppe in Athena mit einem eindeutigen Namen zu erstellen. In diesem Tutorial wird der Arbeitsgruppenname `athena-spark-example` verwendet.

1. Folgen Sie den Schritten unter [Schritt 7: Erstellen Sie ein eigenes Notebook](notebooks-spark-getting-started.md#notebooks-spark-getting-started-creating-your-own-notebook), um ein Notebook zu erstellen und eine neue Sitzung zu starten.

1. Geben Sie im Athena-Notebook-Editor in einer neuen Notebook-Zelle den folgenden Befehl ein:

   ```
   athena_user_logger.info("Hello world.")         
   ```

1. Führen Sie die Zelle aus.

1. 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](notebooks-spark-magics.md)-Befehl `%session_id` aus.

1. Speichern Sie die Sitzungs-ID.

1. Ö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/](https://console.aws.amazon.com/cloudwatch/).

1. Wählen Sie im Navigationsbereich der CloudWatch Konsole die Option **Protokollgruppen** aus.

1. 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-ID `f8c22d11-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
   ```

1. Wählen Sie den Protokollstream-Link für Ihre Sitzung aus.

1. 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.
   ```

1. Kehren Sie zum Athena-Notebook-Editor zurück.

1. Geben Sie in einer neuen Zelle den folgenden Code ein. Der Code protokolliert eine Variable in CloudWatch:

   ```
   x = 6
   athena_user_logger.warn(x)
   ```

1. Führen Sie die Zelle aus.

1. Kehren Sie zur CloudWatch Konsolenseite „**Ereignisse protokollieren**“ für denselben Protokollstream zurück.

1. 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
   ```