Régler automatiquement les charges de travail Spark

Optimiser les performances et la résilience d'une charge de travail Spark peut s'avérer difficile en raison du nombre d'options de configuration Spark et de la difficulté à évaluer l'impact de ces options sur la charge de travail. Le réglage automatique de Dataproc sans serveur offre une alternative à la configuration manuelle des charges de travail. Il applique automatiquement les paramètres de configuration Spark à une charge de travail Spark récurrente en fonction des bonnes pratiques d'optimisation Spark et d'une analyse des exécutions de charges de travail.

S'inscrire au réglage automatique de Dataproc sans serveur

Pour vous inscrire afin d'accéder à la version preview du réglage automatique sans serveur Dataproc décrite sur cette page, remplissez et envoyez le formulaire d'inscription à Gemini in BigQuery Preview. Une fois le formulaire approuvé, les projets listés dans le formulaire ont accès aux fonctionnalités en preview.

Avantages

Le réglage automatique de Dataproc sans serveur peut offrir les avantages suivants:

  • Performances améliorées: optimisation des réglages pour accroître les performances
  • Optimisation plus rapide: configuration automatique pour éviter les tests de configuration manuels chronophages.
  • Résilience accrue: allocation automatique de la mémoire pour éviter les défaillances liées à la mémoire.

Limites

Le réglage automatique de Dataproc sans serveur présente les limites suivantes:

  • Le réglage automatique est calculé et appliqué à la deuxième exécution et aux suivantes d'une charge de travail. La première exécution d'une charge de travail récurrente n'est pas ajustée automatiquement, car Dataproc sans serveur utilise l'historique des charges de travail à des fins d'optimisation.
  • Le dimensionnement de la mémoire n'est pas disponible.
  • L'ajustement automatique n'est pas appliqué rétroactivement aux charges de travail en cours d'exécution, mais uniquement aux cohortes de charges de travail nouvellement envoyées.

Autoréglage des cohortes

L'autoréglage s'applique aux exécutions récurrentes d'une charge de travail par lot, appelées cohortes. Le nom de la cohorte que vous spécifiez lorsque vous envoyez une charge de travail l'identifie comme l'une des exécutions successives de la charge de travail récurrente. Nous vous recommandons d'utiliser des noms de cohorte qui décrivent le type de charge de travail ou qui permettent d'identifier les exécutions d'une charge de travail dans le cadre d'une charge de travail récurrente. Par exemple, spécifiez TPCH-Query1 comme nom de cohorte pour une charge de travail planifiée qui exécute une requête TPC-H quotidienne.

Scénarios de réglage automatique

Pour appliquer le réglage automatique de Dataproc sans serveur à votre charge de travail, sélectionnez un ou plusieurs des scénarios de réglage automatique suivants:

  • MEMORY: l'allocation de mémoire Autotune Spark permet de prédire et d'éviter d'éventuelles erreurs de saturation de la mémoire des charges de travail. Correction d'une charge de travail ayant précédemment échoué en raison d'une erreur de mémoire insuffisante (OOM, Out Of Memory).
  • SCALING: paramètres de configuration de l'autoscaling Spark pour le réglage automatique.
  • BHJ: paramètres de configuration d'Autotune Spark permettant d'optimiser les performances de la jointure de diffusion SQL.

Tarification

Le réglage automatique de Dataproc sans serveur est proposé en version preview, sans frais supplémentaires. La tarification standard de Dataproc sans serveur s'applique.

Disponibilité en fonction des régions

Vous pouvez utiliser le réglage automatique de Dataproc sans serveur avec les lots envoyés dans les régions disponibles de Compute Engine.

Utiliser le réglage automatique de Dataproc sans serveur

Vous pouvez activer le réglage automatique de Dataproc sans serveur sur une charge de travail à l'aide de la console Google Cloud, de Google Cloud CLI ou de l'API Dataproc.

Console

Pour activer le réglage automatique de Dataproc sans serveur lors de chaque envoi d'une charge de travail par lot récurrente, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Lots Dataproc.

    Accéder à la page "Lots" de Dataproc

  2. Pour créer une charge de travail par lot, cliquez sur Créer.

  3. Dans la section Container (Conteneur), renseignez les champs suivants pour votre charge de travail Spark:

    • Cohorte:nom de la cohorte, qui identifie le lot comme faisant partie d'une série de charges de travail récurrentes. Le réglage automatique est appliqué à la deuxième charge de travail et aux suivantes qui sont envoyées avec ce nom de cohorte. Par exemple, spécifiez TPCH-Query1 comme nom de cohorte pour une charge de travail planifiée qui exécute une requête TPC-H quotidienne.
    • Scénarios de réglage automatique:un ou plusieurs scénarios de réglage automatique à utiliser pour optimiser la charge de travail (par exemple, BHJ, MEMORY et SCALING). Vous pouvez modifier la sélection du scénario à chaque envoi de cohortes par lots.
  4. Remplissez les autres sections de la page Créer un lot si nécessaire, puis cliquez sur Envoyer. Pour en savoir plus sur ces champs, consultez la page Envoyer une charge de travail par lot.

gcloud

Pour activer le réglage automatique de Dataproc sans serveur lors de chaque envoi d'une charge de travail par lot récurrente, exécutez la commande gcloud CLI gcloud dataproc batches submit suivante en local dans une fenêtre de terminal ou dans Cloud Shell.

gcloud dataproc batches submit COMMAND \
    --region=REGION \
    --cohort=COHORT \
    --autotuning-scenarios=SCENARIOS \
    other arguments ...

Remplacez les éléments suivants :

  • COMMAND: type de charge de travail Spark, tel que Spark, PySpark, Spark-Sql ou Spark-R.
  • REGION: région dans laquelle votre charge de travail sera exécutée.
  • COHORT: nom de la cohorte, qui identifie le lot comme faisant partie d'une série de charges de travail récurrentes. Le réglage automatique est appliqué à la deuxième charge de travail et aux suivantes qui sont envoyées avec ce nom de cohorte. Par exemple, spécifiez TPCH Query 1 comme nom de cohorte pour une charge de travail planifiée qui exécute une requête TPC-H quotidienne.
  • SCENARIOS: un ou plusieurs scénarios de réglage automatique séparés par une virgule à utiliser pour optimiser la charge de travail (par exemple, --autotuning-scenarios=OOM,MEMORY,SCALING). Vous pouvez modifier la liste des scénarios à chaque envoi de cohortes par lots.

API

Pour activer le réglage automatique de Dataproc sans serveur lors de chaque envoi d'une charge de travail par lot récurrente, envoyez une requête batches.create comprenant les champs suivants:

  • RuntimeConfig.cohort: nom de la cohorte, qui permet d'identifier le lot comme faisant partie d'une série de charges de travail récurrentes. Le réglage automatique est appliqué à la deuxième charge de travail et aux suivantes envoyées avec ce nom de cohorte. Par exemple, spécifiez TPCH-Query1 comme nom de cohorte pour une charge de travail planifiée qui exécute une requête TPC-H quotidienne.
  • AutotuningConfig.scenarios: un ou plusieurs scénarios de réglage automatique à utiliser pour optimiser la charge de travail (BHJ, MEMORY et SCALING, par exemple). Vous pouvez modifier la liste des scénarios à chaque envoi de cohortes par lots.

Exemple :

...
runtimeConfig:
  cohort: TPCH-Query1
  autotuningConfig:
    scenarios:
    - BHJ
    - MEMORY
    - SCALING
...

Afficher les modifications du réglage automatique

Pour afficher les modifications apportées au réglage automatique de Dataproc sans serveur pour une charge de travail par lot, exécutez la commande gcloud dataproc batches describe.

Exemple: le résultat de la fonction gcloud dataproc batches describe est semblable à ce qui suit:

...
runtimeInfo:
   propertiesInfo:
    # Properties set by autotuning.
    autotuningProperties
      spark.driver.memory:
        annotation: Driver OOM was detected
        value: 11520m
      spark.driver.memoryOverhead:
        annotation: Driver OOM was detected
        value: 4608m
    # Old overwritten properties.
    userProperties
...

Vous pouvez également afficher les dernières modifications d'ajustement automatique appliquées à une charge de travail en cours d'exécution, terminée ou en échec sur la page Informations sur le lot de la console Google Cloud, dans l'onglet Enquêter.

Panneau d'investigation du réglage automatique.