Surveiller et dépanner les charges de travail Dataproc sans serveur

Vous pouvez surveiller et dépanner Dataproc sans serveur pour les charges de travail par lot Spark à l'aide des informations et des outils décrits dans les sections suivantes.

Serveur d'historique persistant

Dataproc sans serveur pour Spark crée les ressources de calcul nécessaires à l'exécution d'une charge de travail, exécute la charge de travail sur ces ressources, puis supprime les ressources une fois la charge de travail terminée. Les métriques et les événements de charge de travail ne sont pas conservés une fois la charge de travail terminée. Toutefois, vous pouvez utiliser un serveur d'historique persistant (PHS) pour conserver l'historique d'application de la charge de travail (journaux des événements) dans Cloud Storage.

Pour utiliser un PHS avec une charge de travail par lot, procédez comme suit:

  1. Créez un serveur d'historique persistant Dataproc (PHS).

  2. Spécifiez votre PHS lorsque vous envoyez une charge de travail.

  3. Utilisez la passerelle des composants pour vous connecter au PHS afin d'afficher les détails de l'application, les étapes du programmeur, les détails au niveau des tâches, ainsi que des informations sur l'environnement et l'exécuteur.

Journaux Dataproc sans serveur pour Spark

La journalisation est activée par défaut dans Dataproc sans serveur pour Spark, et les journaux des charges de travail sont conservés une fois la charge de travail terminée. Dataproc sans serveur pour Spark collecte les journaux des charges de travail dans Cloud Logging. Vous pouvez accéder aux journaux de la charge de travail spark, agent, output et container sous la ressource Cloud Dataproc Batch dans l'explorateur de journaux.

Exemple de lot Dataproc sans serveur pour Spark:

Exemple de sélection par lot dans l'explorateur de métriques

Pour en savoir plus, consultez la page Journaux Dataproc.

Métriques liées aux charges de travail

Par défaut, Dataproc sans serveur pour Spark active la collecte des métriques Spark disponibles, sauf si vous utilisez les propriétés de collecte de métriques Spark pour désactiver ou remplacer la collecte d'une ou plusieurs métriques Spark.

Vous pouvez afficher les métriques de charge de travail à partir de l'Explorateur de métriques ou de la page Informations sur le lot dans la console Google Cloud.

Métriques par lot

Les métriques des ressources Dataproc batch fournissent des insights sur les ressources par lot, comme le nombre d'exécuteurs par lot. Les métriques par lot sont précédées de dataproc.googleapis.com/batch.

Exemple de métriques par lot dans l'Explorateur de métriques

Métriques Spark

Les métriques Spark disponibles incluent les métriques du pilote et de l'exécuteur Spark, ainsi que les métriques système. Les métriques Spark disponibles sont précédées de custom.googleapis.com/.

Exemple de métrique Spark dans l'explorateur de métriques

Configurer des alertes de métriques

Vous pouvez créer des alertes de métriques Dataproc pour être informé des problèmes liés aux charges de travail.

Créer des graphiques

Vous pouvez créer des graphiques permettant de visualiser les métriques de charge de travail à l'aide de l'Explorateur de métriques de la console Google Cloud. Par exemple, vous pouvez créer un graphique pour afficher disk:bytes_used, puis filtrer par batch_id.

Cloud Monitoring

Monitoring utilise les métadonnées et les métriques des charges de travail pour fournir des insights sur l'état et les performances de Dataproc sans serveur pour les charges de travail Spark. Les métriques de charge de travail incluent les métriques Spark, les métriques par lot et les métriques des opérations.

Vous pouvez utiliser Cloud Monitoring dans la console Google Cloud pour explorer les métriques, ajouter des graphiques, créer des tableaux de bord et créer des alertes.

Créer des tableaux de bord

Vous pouvez créer un tableau de bord pour surveiller les charges de travail à l'aide de métriques provenant de plusieurs projets et différents produits Google Cloud. Pour en savoir plus, consultez Créer et gérer des tableaux de bord personnalisés.

Dépannage avancé (version preview)

Cette section présente les fonctionnalités de preview de dépannage avancées disponibles dans la console Google Cloud, y compris le dépannage assisté par Genomi pour Dataproc sans serveur, qui fait partie de l'offre Gemini dans BigQuery.

Accès aux fonctionnalités en preview

Pour vous inscrire à la version preview des fonctionnalités de dépannage avancées, remplissez et envoyez le formulaire Gemini in BigQuery Preview. Une fois le formulaire approuvé, les projets qui y figurent ont accès aux fonctionnalités de prévisualisation.

Aperçu des tarifs

La participation à l'aperçu n'entraîne aucuns frais supplémentaires. Des frais s'appliqueront aux fonctionnalités en preview suivantes lorsqu'elles seront en disponibilité générale:

Un avis préalable pour les frais GA sera envoyé à l'adresse e-mail indiquée dans le formulaire d'inscription en preview.

Exigences concernant les fonctionnalités

  • S'inscrire: vous devez vous inscrire à la fonctionnalité.

  • Autorisation:vous devez disposer de l'autorisation dataproc.batches.analyze.

    gcloud iam roles update CUSTOM_ROLE_ID --project=PROJECT_ID \
    --add-permissions="dataproc.batches.analyze"
    
  • Activer le dépannage assisté par Gemini pour Dataproc sans serveur:vous activez le dépannage assisté par Gemini pour Dataproc sans serveur lorsque vous envoyez chaque charge de travail par lot Spark récurrente à l'aide de la console Google Cloud, de gcloud CLI ou de l'API Dataproc. Une fois cette fonctionnalité activée sur une charge de travail par lot récurrente, Dataproc stocke une copie des journaux de la charge de travail pendant 30 jours et utilise les données de journaux enregistrées pour résoudre les problèmes via Gemini. Pour en savoir plus sur le contenu des journaux des charges de travail Spark, consultez la page Dataproc sans serveur pour les journaux Spark.

Console

Pour activer le dépannage assisté par Gemini sur chaque charge de travail par lot Spark 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 Conteneur, renseignez le champ Nom de la cohorte afin d'identifier le lot comme faisant partie d'une série de charges de travail récurrentes. L'analyse assistée par Gemini est appliquée à 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.

  4. Remplissez les autres sections de la page Créer un lot si nécessaire, puis cliquez sur Envoyer. Pour en savoir plus, consultez la section Envoyer une charge de travail par lot.

gcloud

Exécutez la commande gcloud CLI gcloud dataproc batches submit suivante, en local dans une fenêtre de terminal ou dans Cloud Shell, pour activer le dépannage assisté par Gemini sur chaque charge de travail par lot Spark récurrente:

gcloud dataproc batches submit COMMAND \
    --region=REGION \
    --cohort=COHORT \
    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. L'analyse assistée Gemini est appliquée à 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.

API

Incluez le nom RuntimeConfig.cohort dans une requête batches.create pour permettre le dépannage assisté par Gemini sur chaque charge de travail par lot Spark récurrente. L'analyse assistée par Gemini est appliquée à 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.

Exemple :

...
runtimeConfig:
  cohort: TPCH-Query1
...

Dépannage assisté par Gemini pour Dataproc sans serveur

Les fonctionnalités en version preview du dépannage assisté par Gemini sont disponibles sur les pages Informations sur les lots et Lots dans la console Google Cloud.

  • Onglet Enquêter: l'onglet "Enquêter" de la page Informations sur le lot fournit une section "Vue d'ensemble" de l'état de santé (Aperçu) avec les panneaux de dépannage assisté par Gemini suivants:

    • Qu'est-ce qui a été réglé automatiquement ? Si vous avez activé le réglage automatique sur une ou plusieurs charges de travail, ce panneau affiche les modifications les plus récentes appliquées aux charges de travail en cours d'exécution, terminées ou en échec.

    Panneau d'investigation du réglage automatique.

    • Que se passe-t-il en ce moment ? et Que puis-je faire à ce sujet ? Cliquez sur Demander à Gemini pour obtenir des recommandations visant à corriger les charges de travail ayant échoué ou à améliorer les charges de travail qui réussissent, mais qui sont lentes.

    Bouton "Demander à Gemini".

    Si vous cliquez sur Ask Gemini, Gemini génère un résumé des erreurs, des anomalies ou des points forts des journaux de charge de travail, des métriques Spark et des événements Spark. Gemini peut également afficher une liste d'étapes recommandées pour corriger une charge de travail ayant échoué ou améliorer les performances d'une charge de travail réussie, mais lente.

    Insights générés par Gemini.

  • Colonnes de dépannage assistées par Genomi:dans la version preview, la page de la liste des lots Dataproc dans la console Google Cloud inclut les colonnes What was Autotuned, What is happening now? et What can I do about it?.

    Les lots répertorient les colonnes Gemini.

    Le bouton Ask Gemini (Demander à Gemini) ne s'affiche et n'est activé que si un lot terminé possède l'état Failed, Cancelled ou Succeeded. Si vous cliquez sur Ask Gemini, Gemini génère un résumé des erreurs, des anomalies ou des points forts des journaux de charge de travail, des métriques Spark et des événements Spark. Gemini peut également afficher une liste d'étapes recommandées pour corriger une charge de travail ayant échoué ou améliorer les performances d'une charge de travail réussie, mais lente.

Sélection de métriques par lot

Dans la version preview, la page Informations sur les lots de la console Google Cloud inclut des graphiques qui affichent les valeurs importantes des métriques des charges de travail par lot. Les graphiques de métriques contiennent des valeurs une fois le traitement par lot terminé.

Tableau de bord des métriques par lot.

Tableau des métriques

Le tableau suivant répertorie les métriques de la charge de travail Spark affichées sur la page Informations sur le lot de la console Google Cloud, et décrit comment ces valeurs peuvent fournir des informations sur l'état et les performances de la charge de travail.

Métrique Qu'est-ce qui s'affiche ?
Métriques au niveau de l'exécuteur
Ratio du temps d'exécution de la récupération de mémoire JVM par rapport à l'environnement d'exécution Cette métrique indique le ratio entre le délai de récupération de mémoire de la JVM et le temps d'exécution par exécuteur. Des ratios élevés peuvent indiquer des fuites de mémoire dans les tâches exécutées sur des exécuteurs particuliers ou des structures de données inefficaces, ce qui peut entraîner une perte d'objets élevée.
Octets du disque répandus Cette métrique indique le nombre total d'octets de disque répandus sur différents exécuteurs. Si un exécuteur affiche un nombre élevé d'octets du disque répandus, cela peut indiquer un décalage des données. Si la métrique augmente au fil du temps, cela peut indiquer que des phases présentent une pression sur la mémoire ou des fuites de mémoire.
Octets lus et écrits Cette métrique indique le nombre d'octets écrits par rapport au nombre d'octets lus par exécuteur. De grands écarts au niveau du nombre d'octets lus ou écrits peuvent indiquer des scénarios dans lesquels les jointures répliquées conduisent à l'amplification des données sur des exécuteurs spécifiques.
Enregistrements lus et écrits Cette métrique affiche les enregistrements lus et écrits par exécuteur. Un nombre élevé d'enregistrements lus avec un faible nombre d'enregistrements écrits peut indiquer un goulot d'étranglement dans la logique de traitement sur des exécuteurs spécifiques, entraînant la lecture d'enregistrements en attendant. Des retards constants de lecture et d'écriture peuvent indiquer des conflits de ressources sur ces nœuds ou des inefficacités de code propres à ces exécuteurs.
Ratio du temps d'écriture des brassages par rapport à la durée d'exécution La métrique indique la durée pendant laquelle l'exécuteur a passé dans l'environnement d'exécution de brassage par rapport à l'exécution globale. Si cette valeur est élevée pour certains exécuteurs, cela peut indiquer un décalage des données ou une sérialisation inefficace. L'UI Spark vous permet d'identifier les étapes avec de longs temps d'écriture en brassage. Recherchez les tâches aberrantes au cours de ces étapes qui prennent plus de temps que la durée moyenne. Vérifiez si les exécuteurs avec des temps d'écriture en mode aléatoire élevés présentent également une activité d'E/S sur le disque élevée. Une sérialisation plus efficace et des étapes de partitionnement supplémentaires peuvent aider. Des écritures d'enregistrements très volumineuses par rapport aux lectures d'enregistrements peuvent indiquer une duplication de données involontaire en raison de jointures inefficaces ou de transformations incorrectes.
Métriques au niveau de l'application
Progression des étapes Cette métrique indique le nombre d'étapes dans les phases en échec, en attente et en cours d'exécution. Un grand nombre d'étapes en échec ou en attente peut indiquer un décalage des données. Vérifiez les partitions de données et déboguez le motif de l'échec des étapes dans l'onglet Stages (Étapes) de l'UI Spark.
Exécuteurs Spark par lot Cette métrique indique le nombre d'exécuteurs pouvant être requis par rapport au nombre d'exécuteurs en cours d'exécution. Une différence importante entre les exécuteurs requis et en cours d'exécution peut indiquer des problèmes d'autoscaling.
Métriques au niveau de la VM
Mémoire utilisée Cette métrique indique le pourcentage de mémoire de la VM utilisée. Si le pourcentage du maître est élevé, cela peut indiquer que la mémoire du pilote est insuffisante. Pour les autres nœuds de VM, un pourcentage élevé peut indiquer que les exécuteurs manquent de mémoire, ce qui peut entraîner une utilisation excessive du disque et ralentir l'exécution de la charge de travail. Utilisez l'UI Spark pour analyser les exécuteurs afin de vérifier la durée et le nombre d'échecs de récupération de mémoire. Déboguez également le code Spark pour la mise en cache des ensembles de données volumineux et la diffusion inutile de variables.

Journaux de job

Dans la version preview, la page Informations sur le lot de la console Google Cloud répertorie les journaux des tâches (charge de travail par lot). Les journaux incluent des avertissements et des erreurs filtrés à partir des résultats de la charge de travail et des journaux Spark. Vous pouvez sélectionner le paramètre de gravité du journal, ajouter un filtre,puis cliquer sur l'icône Afficher dans l'explorateur de journaux pour ouvrir les journaux de traitement par lot sélectionnés dans l'explorateur de journaux.

Exemple: L'explorateur de journaux s'ouvre après avoir sélectionné Errors dans le sélecteur de niveau de gravité sur la page Détails du lot de la console Google Cloud.

Explorateur de journaux Batch.

UI Spark (preview)

Si vous avez enregistré votre projet dans la fonctionnalité d'aperçu de l'UI Spark, vous pouvez afficher l'UI Spark dans la console Google Cloud sans avoir à créer un cluster Dataproc PHS (Persistent History Server). L'UI Spark collecte les détails de l'exécution Spark à partir des charges de travail par lot. Pour en savoir plus, consultez le guide de l'utilisateur distribué aux clients inscrits dans la version preview de l'UI Spark.