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 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.

  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 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 Préfixe, puis ajoutez "spark.dataproc.enhanced.execution.enabled" dans le champ Clé et "true" dans le champ Valeur.
  4. 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.

  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 une 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 d'optimisation de Spark :
      1. 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).
    2. Pour activer les améliorations d'exécution de Spark :
      1. Cliquez sur + AJOUTER DES PROPRIÉTÉS.
      2. Ajoutez "spark.dataproc.enhanced.execution.enabled" dans le champ Key (Clé) et "true" dans le champ Value (Valeur).
  3. 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.

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

  1. 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 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 améliorations des performances Dataproc Spark sont désactivées 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 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.

  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"