

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.

# Cloud-Shuffle-Speicher-Plugin für Apache Spark
<a name="cloud-shuffle-storage-plugin"></a>

Das Cloud-Shuffle-Speicher-Plugin ist ein mit der [`ShuffleDataIO`-API](https://github.com/apache/spark/blob/master/core/src/main/java/org/apache/spark/shuffle/api/ShuffleDataIO.java) kompatibles Apache-Spark-Plugin, das das Speichern von Shuffle-Daten auf Cloud-Speichersystemen (wie Amazon S3) ermöglicht. Es hilft Ihnen, die lokale Festplattenspeicherkapazität für große Shuffle-Operationen, die häufig durch Transformationen wie, `groupByKey` und `repartition` in Ihren Spark-Anwendungen ausgelöst werden `join``reduceByKey`, zu ergänzen oder zu ersetzen, wodurch häufige Ausfälle oder price/performance Störungen Ihrer serverlosen Datenanalysejobs und Pipelines reduziert werden.

**AWS Glue**  
In den AWS Glue-Versionen 3.0 und 4.0 ist das Plugin bereits vorinstalliert und ermöglichen das Shuffling zu Amazon S3 ohne zusätzliche Schritte. Weitere Informationen finden Sie unter [AWS Glue-Spark-Shuffle-Plugin mit Amazon S3](https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-shuffle-manager.html) zur Aktivierung des Features für Ihre Spark-Anwendungen.

**Andere Spark-Umgebungen**  
Für das Plugin müssen die folgenden Spark-Konfigurationen in anderen Spark-Umgebungen festgelegt werden:
+ `--conf spark.shuffle.sort.io.plugin.class=com.amazonaws.spark.shuffle.io.cloud.ChopperPlugin`: Dies informiert Spark, dieses Plugin für Shuffle IO zu verwenden.
+ `--conf spark.shuffle.storage.path=s3://{{bucket-name}}/{{shuffle-file-dir}}`: Der Pfad, in dem Ihre Shuffle-Dateien gespeichert werden.

**Anmerkung**  
Das Plugin überschreibt eine Spark-Kernklasse. Daher muss das Plugin-Jar vor den Spark-Jars geladen werden. Sie können dies mit `userClassPathFirst` in On-Premises-YARN-Umgebungen tun, wenn das Plugin außerhalb von AWS Glue verwendet wird.

## Bündeln des Plugins mit Ihren Spark-Anwendungen
<a name="cloud-shuffle-storage-plugin-bundling"></a>

Sie können das Plugin mit Ihren Spark-Anwendungen und Spark-Verteilungen (Versionen 3.1 und höher) bündeln, indem Sie die Plugin-Abhängigkeit in Ihrem Maven `pom.xml` hinzufügen, während Sie Ihre Spark-Anwendungen lokal entwickeln. Weitere Informationen zu den Plugin- und Spark-Versionen finden Sie unter [Plugin-Versionen](#cloud-shuffle-storage-plugin-versions).

```
<repositories>
   ...
    <repository>
        <id>aws-glue-etl-artifacts</id>
        <url>https://aws-glue-etl-artifacts.s3.amazonaws.com/release/ </url>
    </repository>
</repositories>
...
<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>chopper-plugin</artifactId>
    <version>3.1-amzn-LATEST</version>
</dependency>
```

Sie können die Binärdateien alternativ direkt von AWS Glue Maven-Artefakten herunterladen und sie wie folgt in Ihre Spark-Anwendung integrieren.

```
#!/bin/bash
sudo wget -v https://aws-glue-etl-artifacts.s3.amazonaws.com/release/com/amazonaws/chopper-plugin/3.1-amzn-LATEST/chopper-plugin-3.1-amzn-LATEST.jar -P /usr/lib/spark/jars/
```

Beispiel spark-submit

```
spark-submit --deploy-mode cluster \
--conf spark.shuffle.storage.s3.path=s3://<ShuffleBucket>/<shuffle-dir> \
--conf spark.driver.extraClassPath={{<Path to plugin jar>}} \ 
--conf spark.executor.extraClassPath={{<Path to plugin jar>}} \
--class <your test class name> s3://{{<ShuffleBucket>}}/{{<Your application jar>}} \
```

## Optionale Konfigurationen
<a name="cloud-shuffle-storage-plugin-optional"></a>

Dies sind optionale Konfigurationswerte, die das Amazon-S3-Zufallsverhalten steuern. 
+ `spark.shuffle.storage.s3.enableServerSideEncryption`: Enable/disable S3 SSE für Shuffle- und Spill-Dateien. Der Standardwert ist `true`.
+ `spark.shuffle.storage.s3.serverSideEncryption.algorithm`: Der zu verwendende SSE-Algorithmus. Der Standardwert ist `AES256`.
+ `spark.shuffle.storage.s3.serverSideEncryption.kms.key`: Der KMS-Schlüssel-ARN, wenn SSE aws:kms aktiviert ist.

Neben diesen Konfigurationen müssen Sie möglicherweise Konfigurationen wie `spark.hadoop.fs.s3.enableServerSideEncryption` und **andere umgebungsspezifische Konfigurationen** festlegen, um sicherzustellen, dass die für Ihren Anwendungsfall geeignete Verschlüsselung angewendet wird.

## Plugin-Versionen
<a name="cloud-shuffle-storage-plugin-versions"></a>

Dieses Plugin wird für die Spark-Versionen unterstützt, die jeder AWS Glue Version zugeordnet sind. Die folgende Tabelle zeigt die AWS Glue Version, Spark-Version und die zugehörige Plugin-Version mit Amazon S3 S3-Speicherort für die Software-Binärdatei des Plugins.


| AWS Glue-Version | Spark-Version | Plugin-Version | Amazon-S3-Speicherort | 
| --- | --- | --- | --- | 
| 3.0 | 3.1 | 3.1-amzn-LATEST | s3://aws-glue-etl-artifacts/release/com/amazonaws/chopper-plugin/3.1-amzn-0/chopper-Plugin-3.1-amzn-latest.jar | 
| 4,0 | 3.3 | 3.3-amzn-LATEST | s3://aws-glue-etl-artifacts/release/com/amazonaws/chopper-plugin/3.3-amzn-0/chopper-plugin-3.3-amzn-neuest.jar | 

## License
<a name="cloud-shuffle-storage-plugin-binary-license"></a>

Die Software-Binärdatei für dieses Plugin ist unter der Apache-2.0-Lizenz lizenziert.