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 de 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 de Dataproc Connecteur BigQuery utilisé dans des jobs Spark
- Améliorations apportées à Spark Execution:
- 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 pour Dataproc Spark
Vous pouvez utiliser la console Google Cloud, Google Cloud CLI et l'API Dataproc API permettant d'améliorer les performances de Dataproc pour Spark lorsque vous créez un cluster Dataproc sur Compute Engine envoyez votre job 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 soumis au cluster, sauf si vous désactivez les améliorations pour un job spécifique lorsque vous envoyez le job. 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 dans le 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 Prefix (Préfixe), puis ajoutez "spark.dataproc.enhanced.execution.enabled" dans le champ Clé et "vrai" dans le champ Valeur.
- Pour activer les améliorations d'optimisation de 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 d'une tâche
Procédez comme suit pour activer les optimisations Spark et les améliorations de l'exécution pour un job Spark. 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 un job), puis faites défiler l'écran jusqu'au job concerné.
Propriétés.
- Pour activer les améliorations de l'optimisation Spark:
- Cliquez sur + AJOUTER DES PROPRIÉTÉS. Ajoutez "spark.dataproc.enhanced.optimizer.enabled" dans le champ Clé et "vrai" 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:
- Renseignez ou confirmez les autres champs d'envoi du poste, 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 au sein d'un projet. Le nom doit commencer par une lettre minuscule et peut contenir jusqu'à 51 caractères minuscules. lettres, chiffres et traits d'union. Il ne doit pas se terminer par un trait d'union. Le nom d'un le cluster supprimé peut être réutilisé.
- PROJECT_ID : projet à associer au cluster.
- REGION: le
Région Compute Engine
l'emplacement où se trouvera le cluster, par exemple
us-central1
.- Vous pouvez ajouter l'option facultative
--zone=ZONE
pour spécifier une zone dans la région spécifiée, commeus-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 facultative
- IMAGE: optimiseur et performances d'exécution Spark pour Dataproc
améliorations sont disponibles dans les versions d'image Dataproc
2.0.69+
et2.1.17+
et versions ultérieures. Si vous omettez cette option, Dataproc sélectionne la dernière version de correction de Dataproc sur Compute Engine ; du cluster (consultez la page Version par défaut de l'image Dataproc). 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 des jobs
Procédez comme suit pour activer les optimisations Spark et les améliorations de l'exécution pour un job Spark. 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 la commande suivante : gcloud dataproc jobs submit. en local 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 performances améliorées de Dataproc pour Spark sont désactivés 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 de l'exécution Spark, spécifiez:
"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 des jobs
Procédez comme suit pour activer les optimisations Spark et les améliorations de l'exécution pour un job Spark. 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"