Cloud Shuffle Storage Plugin pour Apache Spark - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Cloud Shuffle Storage Plugin pour Apache Spark

Cloud Shuffle Storage Plugin est un plug-in Apache Spark compatible avec l'API ShuffleDataIO qui permet de stocker des données aléatoires sur des systèmes de stockage cloud (tels qu'Amazon S3). Il vous aide à compléter ou à remplacer la capacité de stockage sur disque local pour les opérations de lecture aléatoire de grande envergure, généralement déclenchées par des transformations telles que join, reduceByKey, groupByKey et repartition dans vos applications Spark, réduisant ainsi les défaillances courantes ou les problèmes de rapport prix/performances de vos tâches et pipelines d'analyse de données sans serveur.

AWS Glue

AWS Glue les versions 3.0 et 4.0 sont livrées avec le plugin préinstallé et prêt à activer le shuffling vers Amazon S3 sans aucune étape supplémentaire. Pour plus d’informations, consultez .AWS Glue Plug-in Spark Shuffle avec Amazon S3 pour activer cette fonctionnalité pour vos applications Spark.

Autres environnements Spark

Le plug-in exige que les configurations Spark suivantes soient définies sur d'autres environnements Spark :

  • --conf spark.shuffle.sort.io.plugin.class=com.amazonaws.spark.shuffle.io.cloud.ChopperPlugin : indique à Spark d'utiliser ce plug-in pour Shuffle IO.

  • --conf spark.shuffle.storage.path=s3://bucket-name/shuffle-file-dir : chemin de stockage de vos fichiers de lecture aléatoire.

Note

Le plug-in remplace une classe principale de Spark. Par conséquent, le fichier jar du plug-in doit être chargé avant les fichiers jar de Spark. Vous pouvez le faire userClassPathFirst en utilisant des environnements YARN sur site si le plugin est utilisé à l'extérieur AWS Glue.

Création d’une offre groupée du plug-in pour vos applications Spark

Vous pouvez intégrer le plug-in à vos applications et distributions Spark (versions 3.1 et supérieures) en ajoutant la dépendance du plug-in dans votre fichier pom.xml Maven, tout en développant vos applications Spark en local. Pour plus d'informations sur les versions du plug-in et de Spark, consultez Versions du 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>

Vous pouvez également télécharger les fichiers binaires directement à partir des artefacts AWS Glue Maven et les inclure dans votre application Spark comme suit.

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

Exemple d'utilisation de 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> \

Configurations facultatives

Il s'agit de valeurs de configuration facultatives qui contrôlent le comportement de lecture aléatoire d'Amazon S3.

  • spark.shuffle.storage.s3.enableServerSideEncryption : active/désactive S3 SSE pour les fichiers de lecture aléatoire et de débordement. La valeur par défaut est true.

  • spark.shuffle.storage.s3.serverSideEncryption.algorithm : algorithme SSE à utiliser. La valeur par défaut est AES256.

  • spark.shuffle.storage.s3.serverSideEncryption.kms.key : ARN de la clé KMS lorsque SSE aws:kms est activé.

Outre ces configurations, vous devrez peut-être définir des configurations telles que spark.hadoop.fs.s3.enableServerSideEncryption et d’autres configurations spécifiques à l’environnement pour garantir que le chiffrement approprié est appliqué à votre cas d’utilisation.

Versions du plug-in

Ce plugin est pris en charge pour les versions de Spark associées à chaque AWS Glue version. Le tableau suivant indique la AWS Glue version, la version de Spark et la version du plugin associée avec l'emplacement Amazon S3 du binaire logiciel du plugin.

AWS Glue version Version de Spark Version du plug-in Emplacement Amazon S3
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-latest.jar

Licence

Le fichier binaire logiciel de ce plug-in est concédé sous licence dans le cadre de la licence Apache-2.0.