Plug-in di archiviazione cloud shuffle per Apache Spark - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Plug-in di archiviazione cloud shuffle per Apache Spark

Il plug-in di archiviazione cloud shuffle è un plug-in Apache Spark compatibile con l'API ShuffleDataIO che consente di archiviare dati shuffle su sistemi di archiviazione cloud (come Amazon S3). Ti aiuta a integrare o sostituire la capacità di archiviazione su disco locale per operazioni shuffle di grandi dimensioni, generalmente innescate da trasformazioni come groupByKey e repartition nelle applicazioni Spark joinreduceByKey, riducendo così gli errori comuni o la price/performance dislocazione dei processi e delle pipeline di analisi dei dati senza server.

AWS Glue

Le versioni 3.0 e 4.0 di AWS Glue includono il plug-in preinstallato e pronto per abilitare lo shuffling su Amazon S3 senza passaggi aggiuntivi. Per ulteriori informazioni, consulta Plug-in shuffle di AWS Glue Spark con Amazon S3 per abilitare la funzionalità per le tue applicazioni Spark.

Altri ambienti Spark

Il plug-in richiede che in altri ambienti Spark siano impostate le seguenti configurazioni Spark:

  • --conf spark.shuffle.sort.io.plugin.class=com.amazonaws.spark.shuffle.io.cloud.ChopperPlugin: indica a Spark di utilizzare questo plug-in per Shuffle IO.

  • --conf spark.shuffle.storage.path=s3://bucket-name/shuffle-file-dir: il percorso in cui verranno archiviati i file shuffle.

Nota

Il plug-in sovrascrive una classe principale di Spark. Di conseguenza, il jar del plug-in deve essere caricato prima dei jar di Spark. Ciò è possibile utilizzando userClassPathFirst in ambienti YARN on-premise se il plug-in viene utilizzato all'esterno di AWS Glue.

Creazione di bundle per il plug-in con le applicazioni Spark

È possibile raggruppare il plug-in con le applicazioni Spark e le distribuzioni Spark (versioni 3.1 e successive) aggiungendo la dipendenza del plug-in nel file Mavenpom.xml mentre si sviluppano le applicazioni Spark in locale. Per ulteriori informazioni sulle versioni del plug-in e di Spark, consulta Versioni del plug-in.

<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>

In alternativa, puoi scaricare i file binari direttamente dagli artefatti di AWS Glue Maven e includerli nell'applicazione Spark come segue.

#!/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/

Esempio 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> \

Configurazioni facoltative

Questi sono i valori delle configurazioni facoltative che controllano il comportamento dello shuffle di Amazon S3.

  • spark.shuffle.storage.s3.enableServerSideEncryption: Enable/disable S3 SSE per shuffle e spill file. Il valore predefinito è true.

  • spark.shuffle.storage.s3.serverSideEncryption.algorithm: l'algoritmo SSE da utilizzare. Il valore predefinito è AES256.

  • spark.shuffle.storage.s3.serverSideEncryption.kms.key: l'ARN della chiave KMS quando è abilitato SSE aws:kms.

Oltre a queste configurazioni, potrebbe essere necessario impostarne altre come spark.hadoop.fs.s3.enableServerSideEncryption e configurazioni aggiuntive specifiche dell'ambiente per garantire l'applicazione della crittografia appropriata per il caso d'uso.

Versioni del plug-in

Questo plugin è supportato per le versioni Spark associate a ciascuna versione. AWS Glue La tabella seguente mostra la AWS Glue versione, la versione Spark e la versione del plug-in associata con la posizione Amazon S3 per il file binario del software del plug-in.

Versione AWS Glue Versione di Spark Versione del plug-in Posizione di Amazon S3.
3.0 3.1 3.1-amzn-LATEST

s3:///-Plugin-3.1-amzn-latest.jar aws-glue-etl-artifacts release/com/amazonaws/chopper-plugin/3.1-amzn-0/chopper

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-latest.jar

Licenza

Il software del plug-in è concesso in licenza ai sensi della licenza Apache-2.0.