Amélioration des performances de Dataproc Spark

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.

  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 sur la ligne 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 de l'optimisation Spark :
      1. Cliquez sur + AJOUTER DES PROPRIÉTÉS.
      2. 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).
    2. Pour activer les améliorations de l'exécution 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 Key (Clé) et "true" dans le champ Value (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 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.

  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 la tâche), puis faites défiler la page jusqu'à la section Properties (Propriétés) de la tâche.
    1. Pour activer les améliorations de l'optimisation Spark :
      1. Cliquez sur + AJOUTER DES PROPRIÉTÉS. Ajoutez "spark.dataproc.enhanced.optimiseur.enabled" dans le champ Key (Clé) et "true" 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. 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.

  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 (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 exemple us-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.
    • IMAGE: l'optimiseur Dataproc Dataproc et les améliorations des performances d'exécution sont disponibles dans les versions d'image 2.0.69+ et 2.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.

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

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.

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

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