Ce document explique comment activer les améliorations des performances de Dataproc Spark pour permettre à vos tâches Dataproc Spark de traiter davantage de données en moins de temps et tout en réduisant les coûts.
Voici les améliorations apportées aux performances de Dataproc Spark:
- Améliorations apportées à l'optimiseur Spark :
- Règles d'optimisation écrites pour de meilleurs plans Spark
- Amélioration des performances du connecteur Dataproc BigQuery en cas d'utilisation dans des tâches Spark
- Améliorations de Spark Execution :
- Améliorations apportées au moteur d'exécution Spark
Autres améliorations des performances de Dataproc:consultez la page sur la mise en cache des clusters Dataproc, qui permet de réduire le temps passé à accéder aux données dans Cloud Storage.
Activer l'amélioration des performances de Dataproc Spark
Vous pouvez utiliser la console Google Cloud, Google Cloud CLI et l'API Dataproc pour améliorer les performances de Dataproc Spark lorsque vous créez un cluster Dataproc sur Compute Engine ou que vous envoyez votre tâche Spark à votre cluster.
Console
Activer les améliorations lors de la création du cluster
Procédez comme suit pour activer l'optimisation et les améliorations d'exécution Spark lorsque vous créez un cluster Dataproc. Les améliorations activées restent en vigueur pour toutes les tâches Spark envoyées au cluster, sauf si vous les désactivez pour une tâche spécifique lorsque vous envoyez cette tâche. Par défaut, les améliorations des performances de 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 de l'optimisation Spark :
- Cliquez sur + AJOUTER DES PROPRIÉTÉS.
- Sélectionnez spark dans la liste Prefix (Préfixe), puis ajoutez "spark.dataproc.enhanced.optimiseur.enabled" dans le champ Key (Clé) et "true" dans le champ Value (Valeur).
- Pour activer les améliorations de l'exécution Spark :
- Cliquez sur + AJOUTER DES PROPRIÉTÉS.
- Sélectionnez spark dans la liste Prefix (Préfixe), puis ajoutez "spark.dataproc.enhanced.execution.enabled" dans le champ Key (Clé) et "true" dans le champ Value (Valeur).
- Pour activer les améliorations de l'optimisation Spark :
- Renseignez ou confirmez les autres champs de création du cluster, puis cliquez sur Créer.
Activer les améliorations lors de l'envoi de tâches
Procédez comme suit pour activer les optimisations Spark et les améliorations d'exécution pour une tâche Spark. Par défaut, les améliorations des performances de 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 que vous 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 la tâche), puis faites défiler la page jusqu'à la section Properties (Propriétés) de la tâche.
- Pour activer les améliorations de l'optimisation Spark :
- Cliquez sur + AJOUTER DES PROPRIÉTÉS. Ajoutez "spark.dataproc.enhanced.optimiseur.enabled" dans le champ Key (Clé) et "true" dans le champ Valeur.
- Pour activer les améliorations de l'exécution Spark :
- Cliquez sur + AJOUTER DES PROPRIÉTÉS.
- Ajoutez "spark.dataproc.enhanced.execution.enabled" dans le champ Clé et "true" dans le champ Valeur.
- Pour activer les améliorations de l'optimisation Spark :
- Remplissez ou confirmez les autres champs d'envoi de tâche, puis cliquez sur Submit (Envoyer).
gcloud
Activer les améliorations lors de la création du cluster
Procédez comme suit pour activer l'optimisation et les améliorations d'exécution Spark lorsque vous créez un cluster Dataproc. Les améliorations activées restent en vigueur pour toutes les tâches Spark envoyées au cluster, sauf si vous les désactivez pour une tâche spécifique lorsque vous envoyez cette tâche. Par défaut, les améliorations des performances de 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 au sein d'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 peut 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 le cluster sera situé, par exemple
us-central1
.- Vous pouvez ajouter l'option facultative
--zone=ZONE
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é d'emplacement de zone automatique de Dataproc sélectionne une zone avec la région spécifiée.
- Vous pouvez ajouter l'option facultative
- IMAGE: l'optimiseur Dataproc Dataproc et les améliorations des performances d'exécution sont disponibles dans les versions d'image
2.0.69+
et2.1.17+
de Dataproc ainsi que dans les versions ultérieures. Si vous omettez cet indicateur, Dataproc sélectionne la dernière version de correction de l'image par défaut Dataproc sur Compute Engine pour le cluster (consultez la section Version de l'image Dataproc par défaut). PROPERTIES:
- Pour activer les améliorations apportées à l'optimisation Spark, spécifiez:
spark:spark.dataproc.enhanced.optimizer.enabled=true
- Pour activer les améliorations de l'exécution Spark, spécifiez:
spark:spark.dataproc.enhanced.execution.enabled=true
- Pour activer l'optimisation Spark et les améliorations d'exécution, spécifiez:
spark:spark.dataproc.enhanced.optimizer.enabled=true,spark:spark.dataproc.enhanced.execution.enabled=true
Activer les améliorations lors de l'envoi de tâches
Procédez comme suit pour activer les optimisations Spark et les améliorations d'exécution pour une tâche Spark. Par défaut, les améliorations des performances de 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 que vous les activez pour une tâche spécifique.
Exécutez en local la commande gcloud dataproc jobssubmit suivante 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 où se trouve le cluster.
PROPERTIES:
- Pour activer les améliorations apportées à l'optimisation Spark, spécifiez:
spark.dataproc.enhanced.optimizer.enabled=true
- Pour activer les améliorations de l'exécution Spark, spécifiez:
spark.dataproc.enhanced.execution.enabled=true
- Pour activer l'optimisation Spark et les améliorations d'exécution, spécifiez:
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
Procédez comme suit pour activer l'optimisation et les améliorations d'exécution Spark lorsque vous créez un cluster Dataproc. Les améliorations activées restent en vigueur pour toutes les tâches Spark envoyées au cluster, sauf si vous les désactivez pour une tâche spécifique lorsque vous envoyez cette tâche. Par défaut, les améliorations des performances de Dataproc Spark sont désactivées sur un cluster Dataproc.
Spécifiez les
SoftwareConfig.properties
suivants dans une requêteclusters.create
:- Pour activer les améliorations apportées à l'optimisation Spark, spécifiez:
"spark:spark.dataproc.enhanced.optimizer.enabled": "true"
- Pour activer les améliorations de l'exécution Spark, spécifiez:
"spark:spark.dataproc.enhanced.execution.enabled": "true"
- Pour activer l'optimisation Spark et les améliorations d'exécution, spécifiez:
"spark:spark.dataproc.enhanced.optimizer.enabled": "true","spark:spark.dataproc.enhanced.execution.enabled": "true"
Activer les améliorations lors de l'envoi de tâches
Procédez comme suit pour activer les optimisations Spark et les améliorations d'exécution pour une tâche Spark. Par défaut, les améliorations des performances de 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 que vous les activez pour une tâche spécifique.
Spécifiez les éléments
properties
suivants pour un SparkJob, PySparkJob, SparkSqlJob ou SparkRJob dans le cadre d'une requêtejobs.submit
:- Pour activer les améliorations apportées à l'optimisation Spark, spécifiez:
"spark.dataproc.enhanced.optimizer.enabled=true"
- Pour activer les améliorations de l'exécution Spark, spécifiez:
"spark.dataproc.enhanced.execution.enabled=true"
- Pour activer l'optimisation Spark et les améliorations d'exécution, spécifiez:
"spark.dataproc.enhanced.execution.enabled=true,spark.dataproc.enhanced.optimizer.enabled=true"