Ce document explique comment activer les améliorations des performances de Dataproc Spark pour aider vos tâches Dataproc Spark à traiter plus de données en moins de temps à moindre coût.
Les améliorations des performances de Dataproc Spark incluent les suivantes:
- Améliorations de l'optimiseur Spark :
- Règles d'optimiseur écrites pour de meilleurs plans Spark
- Amélioration des performances du connecteur BigQuery Dataproc lorsqu'il est utilisé dans des jobs Spark
- Améliorations de l'exécution Spark :
- Améliorations du moteur d'exécution Spark
Autres améliorations des performances de Dataproc:consultez le cache de cluster Dataproc, qui permet de réduire le temps passé à accéder aux données dans Cloud Storage.
Activer les améliorations des performances de Dataproc Spark
Vous pouvez utiliser la console Google Cloud, la Google Cloud CLI et l'API Dataproc pour activer les améliorations des performances Dataproc Spark lorsque vous créez un cluster Dataproc sur Compute Engine ou lorsque vous envoyez votre tâche Spark à votre cluster.
Console
Activer les améliorations lors de la création du cluster
Suivez la procédure ci-dessous pour activer les améliorations d'optimisation et d'exécution de Spark lorsque vous créez un cluster Dataproc. Les améliorations activées restent en vigueur pour tous les jobs Spark envoyés au cluster, sauf si vous les désactivez pour un job spécifique lorsque vous l'envoyez. Par défaut, les améliorations des performances Dataproc Spark sont désactivées sur un cluster Dataproc.
- Dans la console Google Cloud, ouvrez la page Dataproc Créer un cluster.
- Dans le formulaire Créer un cluster Dataproc, cliquez sur Créer sur la ligne Cluster sur Compute Engine.
- Sur la page Créer un cluster Dataproc sur Compute Engine, cliquez sur le panneau Personnaliser le cluster, puis faites défiler la page jusqu'à la section Propriétés du cluster.
- Pour activer les améliorations d'optimisation de Spark :
- Cliquez sur + AJOUTER DES PROPRIÉTÉS.
- Sélectionnez spark dans la liste Préfixe, puis ajoutez "spark.dataproc.enhanced.optimizer.enabled" dans le champ Clé et "true" dans le champ Valeur.
- Pour activer les améliorations d'exécution de Spark :
- Cliquez sur + AJOUTER DES PROPRIÉTÉS.
- Sélectionnez spark dans la liste Préfixe, puis ajoutez "spark.dataproc.enhanced.execution.enabled" dans le champ Clé et "true" dans le champ Valeur.
- Pour activer les améliorations d'optimisation de Spark :
- Renseignez ou confirmez les autres champs de création de cluster, puis cliquez sur Créer.
Activer les améliorations lors de l'envoi de la tâche
Pour activer les optimisations Spark et les améliorations d'exécution pour une tâche Spark, procédez comme suit : Par défaut, les améliorations des performances Dataproc Spark sont désactivées sur les tâches Spark, sauf si vous les activez lorsque vous créez un cluster de tâches ou les activez pour une tâche spécifique.
- Dans la console Google Cloud, ouvrez la page Tâches de Dataproc.
- Sur la page Jobs (Tâches), cliquez sur Submit job (Envoyer une tâche), puis faites défiler la page jusqu'à la section Properties (Propriétés) de la tâche.
- Pour activer les améliorations d'optimisation de Spark :
- Cliquez sur + AJOUTER DES PROPRIÉTÉS. Ajoutez "spark.dataproc.enhanced.optimizer.enabled" dans le champ Key (Clé) et "true" dans le champ Value (Valeur).
- Pour activer les améliorations d'exécution de Spark :
- Cliquez sur + AJOUTER DES PROPRIÉTÉS.
- Ajoutez "spark.dataproc.enhanced.execution.enabled" dans le champ Key (Clé) et "true" dans le champ Value (Valeur).
- Pour activer les améliorations d'optimisation de Spark :
- Terminez de renseigner ou de confirmer les autres champs de l'envoi de la tâche, puis cliquez sur Envoyer.
gcloud
Activer les améliorations lors de la création du cluster
Suivez la procédure ci-dessous pour activer les améliorations d'optimisation et d'exécution de Spark lorsque vous créez un cluster Dataproc. Les améliorations activées restent en vigueur pour tous les jobs Spark envoyés au cluster, sauf si vous les désactivez pour un job spécifique lorsque vous l'envoyez. Par défaut, les améliorations des performances Dataproc Spark sont désactivées sur un cluster Dataproc.
Exécutez en local la commande gcloud dataproc clusters create suivante dans une fenêtre de terminal ou dans Cloud Shell.
gcloud dataproc clusters create CLUSTER_NAME \ --project=PROJECT_ID \ --region=REGION \ --image-version=IMAGE \ --properties=PROPERTIES
Remarques :
- CLUSTER_NAME: nom du cluster, qui doit être unique dans un projet. Le nom doit commencer par une lettre minuscule et peut contenir jusqu'à 51 caractères (lettres minuscules, chiffres et traits d'union). Il ne doit pas se terminer par un trait d'union. Le nom d'un cluster supprimé peut être réutilisé.
- PROJECT_ID: projet à associer au cluster.
- REGION: région Compute Engine dans laquelle se trouvera le cluster, par exemple
us-central1
.- Vous pouvez ajouter l'option
--zone=ZONE
facultative pour spécifier une zone dans la région spécifiée, par exempleus-central1-a
. Si vous ne spécifiez pas de zone, la fonctionnalité de sélection de zone automatique de Dataproc sélectionne une zone dans la région spécifiée.
- Vous pouvez ajouter l'option
- IMAGE: l'optimiseur Spark Dataproc et les améliorations des performances d'exécution sont disponibles dans les versions d'image Dataproc
2.0.69+
et2.1.17+
, ainsi que dans les versions ultérieures. Si vous omettez cet indicateur, Dataproc sélectionnera la dernière version sous-mineure de l'image Dataproc par défaut sur Compute Engine pour le cluster (voir la section Version d'image Dataproc par défaut). PROPERTIES :
- Pour activer les améliorations d'optimisation de Spark, spécifiez les éléments suivants:
spark:spark.dataproc.enhanced.optimizer.enabled=true
- Pour activer les améliorations d'exécution de Spark, spécifiez les éléments suivants:
spark:spark.dataproc.enhanced.execution.enabled=true
- Pour activer l'optimisation et les améliorations d'exécution de Spark, spécifiez les éléments suivants:
spark:spark.dataproc.enhanced.optimizer.enabled=true,spark:spark.dataproc.enhanced.execution.enabled=true
Activer les améliorations lors de l'envoi de la tâche
Pour activer les optimisations Spark et les améliorations d'exécution pour une tâche Spark, procédez comme suit : Par défaut, les améliorations des performances Dataproc Spark sont désactivées sur les tâches Spark, sauf si vous les activez lorsque vous créez un cluster de tâches ou les activez pour une tâche spécifique.
Exécutez en local la commande gcloud dataproc jobs submit dans une fenêtre de terminal ou dans Cloud Shell.
gcloud dataproc jobs submit SPARK_JOB_TYPE \ --cluster=CLUSTER_NAME \ --region=REGION \ --properties=PROPERTIES
Remarques :
- SPARK_JOB_TYPE: spécifiez
spark
,pyspark
,spark-sql
ouspark-r
. - CLUSTER_NAME: nom de la tâche dans laquelle la tâche sera exécutée.
- REGION: région dans laquelle se trouve le cluster.
PROPERTIES :
- Pour activer les améliorations d'optimisation de Spark, spécifiez les éléments suivants:
spark.dataproc.enhanced.optimizer.enabled=true
- Pour activer les améliorations d'exécution de Spark, spécifiez les éléments suivants:
spark.dataproc.enhanced.execution.enabled=true
- Pour activer l'optimisation et les améliorations d'exécution de Spark, spécifiez les éléments suivants:
spark.dataproc.enhanced.optimizer.enabled=true,spark.dataproc.enhanced.execution.enabled
- SPARK_JOB_TYPE: spécifiez
API
Activer les améliorations lors de la création du cluster
Suivez la procédure ci-dessous pour activer les améliorations d'optimisation et d'exécution de Spark lorsque vous créez un cluster Dataproc. Les améliorations activées restent en vigueur pour tous les jobs Spark envoyés au cluster, sauf si vous les désactivez pour un job spécifique lorsque vous l'envoyez. Par défaut, les améliorations des performances Dataproc Spark sont désactivées sur un cluster Dataproc.
Spécifiez les
SoftwareConfig.properties
suivants dans le cadre d'une requêteclusters.create
:- Pour activer les améliorations d'optimisation de Spark, spécifiez les éléments suivants:
"spark:spark.dataproc.enhanced.optimizer.enabled": "true"
- Pour activer les améliorations d'exécution de Spark, spécifiez les éléments suivants:
"spark:spark.dataproc.enhanced.execution.enabled": "true"
- Pour activer l'optimisation et les améliorations d'exécution de Spark, spécifiez les éléments suivants:
"spark:spark.dataproc.enhanced.optimizer.enabled": "true","spark:spark.dataproc.enhanced.execution.enabled": "true"
Activer les améliorations lors de l'envoi de la tâche
Pour activer les optimisations Spark et les améliorations d'exécution pour une tâche Spark, procédez comme suit : Par défaut, les améliorations des performances Dataproc Spark sont désactivées sur les tâches Spark, sauf si vous les activez lorsque vous créez un cluster de tâches ou les activez pour une tâche spécifique.
Spécifiez les
properties
suivants pour un SparkJob, un PySparkJob, un SparkSqlJob ou un SparkRJob dans le cadre d'une requêtejobs.submit
:- Pour activer les améliorations d'optimisation de Spark, spécifiez les éléments suivants:
"spark.dataproc.enhanced.optimizer.enabled=true"
- Pour activer les améliorations d'exécution de Spark, spécifiez les éléments suivants:
"spark.dataproc.enhanced.execution.enabled=true"
- Pour activer l'optimisation et les améliorations d'exécution de Spark, spécifiez les éléments suivants:
"spark.dataproc.enhanced.execution.enabled=true,spark.dataproc.enhanced.optimizer.enabled=true"