Améliorations des performances de Dataproc Spark

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.

  1. Dans la console Google Cloud, ouvrez la page Dataproc Créer un cluster.
  2. Dans le formulaire Créer un cluster Dataproc, cliquez sur Créer dans le Cluster sur Compute Engine.
  3. 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.
    1. Pour activer les améliorations d'optimisation de Spark :
      1. Cliquez sur + AJOUTER DES PROPRIÉTÉS.
      2. 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.
    2. Pour activer les améliorations d'exécution de Spark :
      1. Cliquez sur + AJOUTER DES PROPRIÉTÉS.
      2. 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.
  4. 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.

  1. Dans la console Google Cloud, ouvrez la page Tâches de Dataproc.
  2. 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.
    1. Pour activer les améliorations de l'optimisation Spark:
      1. Cliquez sur + AJOUTER DES PROPRIÉTÉS. Ajoutez "spark.dataproc.enhanced.optimizer.enabled" dans le champ Clé et "vrai" dans le champ Valeur.
    2. Pour activer les améliorations de l'exécution Spark:
      1. Cliquez sur + AJOUTER DES PROPRIÉTÉS.
      2. Ajoutez "spark.dataproc.enhanced.execution.enabled" dans le champ Clé. et "true" dans le champ Valeur.
  3. 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.

  1. 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, comme us-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.
    • IMAGE: optimiseur et performances d'exécution Spark pour Dataproc améliorations sont disponibles dans les versions d'image Dataproc 2.0.69+ et 2.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.

  1. 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 ou spark-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
      

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.

  1. Spécifiez les SoftwareConfig.properties suivants dans le cadre d'une requête clusters.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.

  1. Spécifiez les properties suivants pour un SparkJob, un PySparkJob, un SparkSqlJob ou un SparkRJob dans le cadre d'une requête jobs.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"