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

Vous pouvez surveiller et dépanner Dataproc sans serveur Charges de travail par lot Spark à l'aide des informations et des outils présentés 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 liés aux charges 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 de l'application de la charge de travail (événement journaux) 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 (PHS) Dataproc.

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

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

Journaux Dataproc sans serveur pour Spark

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

Exemple de requête Dataproc sans serveur pour Spark par lot:

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

Pour plus d'informations, consultez la page Journaux Dataproc.

Journaux d'audit sans serveur Dataproc

Pour en savoir plus sur les journaux d'audit Dataproc sans serveur, consultez la page Journaux d'audit Dataproc

Métriques liées aux charges de travail

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

Vous pouvez afficher les métriques des charges de travail Explorateur de métriques ou la Page Détails du lot de la console Google Cloud.

Métriques par lot

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

Exemple de métrique par lot dans l'explorateur de métriques

Métriques Spark

Métriques Spark disponibles incluent des métriques de pilote et d'exécuteur Spark, ainsi que des métriques système. Les métriques Spark disponibles sont précédées d'un préfixe avec 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 afin d'être averti des problèmes liés aux charges de travail.

Créer des graphiques

Vous pouvez créer des graphiques qui visualisent les métriques de charge de travail à l'aide de la classe Explorateur de métriques dans le console Google Cloud. Par exemple, vous pouvez créez un graphique pour afficher disk:bytes_used, puis filtrez 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 d'opération.

Vous pouvez utiliser Cloud Monitoring dans la console Google Cloud pour explorer les métriques, ajouter des graphiques, et créer des tableaux de bord et 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 issues de plusieurs des projets et des produits Google Cloud. Pour en savoir plus, consultez Créer et gérer des tableaux de bord personnalisés

Dépannage avancé (preview)

Cette section aborde le dépannage avancé (version preview) disponibles dans la console Google Cloud. Ces fonctionnalités incluent : Dépannage assisté par Gemini pour Dataproc sans serveur qui fait partie Offre Gemini dans BigQuery.

Accès aux fonctionnalités en preview

Pour vous inscrire à la version preview de fonctionnalités de dépannage avancées, remplissez et envoyez le Inscription à Gemini dans BigQuery avant disponibilité générale . Une fois le formulaire approuvé, les projets répertoriés dans le formulaire ont accès à en preview.

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 disponibilité générale:

Un avis préalable de frais GA sera envoyé à l'adresse e-mail que vous avez indiquée dans l'aperçu du formulaire d'inscription.

Exigences concernant les fonctionnalités

  • Inscription: vous devez vous inscrire pour utiliser cette 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 résoudre les problèmes liés à Dataproc sans serveur lorsque vous envoyez chaque charge de travail par lot Spark récurrente à l'aide de la Console Google Cloud, gcloud CLI ou Dataproc API. Une fois cette fonctionnalité activée sur une charge de travail par lot récurrente, Dataproc stocke une copie des journaux de charge de travail pendant 30 jours et utilise les données de journaux enregistrées afin de résoudre les problèmes liés à la charge de travail avec Gemini. Pour en savoir plus sur le contenu des journaux des charges de travail Spark, consultez 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:

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

    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, remplissez le Nom de la cohorte, qui identifie le lot comme l'une des charges de travail récurrentes. L'analyse assistée par Gemini est appliquée à la deuxième charge de travail et aux suivantes envoyés 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 selon vos besoins, puis cliquez sur Envoyer. Pour en savoir plus, consultez Envoyez une charge de travail par lot.

gcloud

Exécutez la gcloud CLI suivante : gcloud dataproc batches submit 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: le région où votre charge de travail sera exécutée.
  • COHORT: nom de la cohorte, identifie 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 Query 1. comme nom de cohorte pour une charge de travail planifiée qui exécute une requête TPC-H.

API

Inclure RuntimeConfig.cohort dans un objet batches.create demande d'activation du dépannage assisté par Gemini sur chaque Spark par lot. L'analyse assistée par Gemini est appliquée à la deuxième charge de travail et aux charges de travail 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 requête TPC-H.

Exemple :

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

Dépannage assisté par Gemini pour Dataproc sans serveur

Les fonctionnalités suivantes en preview de dépannage assisté par Gemini sont disponibles sur Les pages Détails des lots et Lots de la console Google Cloud

  • Onglet Examiner: onglet "Examiner" de la page Informations sur le lot fournit une section "Health Overview (Preview)" (Aperçu de l'état) contenant les éléments suivants : Panneaux de dépannage assisté par Gemini:

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

    Panneau d'investigation du réglage automatique

    • Que se passe-t-il maintenant ? et Que puis-je faire ? Cliquez sur Demander à Gemini pour obtenir des recommandations afin de corriger les charges de travail ayant échoué ou d'améliorer des charges de travail réussies, mais lentes.

    Bouton "Demander à Gemini".

    Si vous cliquez sur Demander à Gemini, Gemini pour Google Cloud génère un résumé des erreurs, les anomalies ou les faits marquants dans les journaux de charge de travail, les métriques Spark et les événements Spark. Gemini pour Google Cloud peut également afficher une liste de mesures recommandées que vous pouvez suivre pour corriger une erreur charge de travail ou améliorer les performances d'une charge de travail réussie, mais lente.

    Insights générés par Gemini pour Google Cloud.

  • Colonnes de dépannage assisté par Gemini:dans le cadre la page contenant la liste des lots de Dataproc dans la la console Google Cloud inclut What was Autotuned, What is happening now?, et What can I do about it?.

    Les lots répertorient les colonnes Gemini.

    Le bouton Demander à Gemini s'affiche. activée uniquement si un lot terminé présente l'état Failed, Cancelled ou Succeeded. Si vous cliquez sur Demander à Gemini, Gemini pour Google Cloud génère un résumé des erreurs, anomalies ou faits marquants à partir des journaux de charge de travail, des métriques Spark et des événements Spark. Gemini pour Google Cloud peut également afficher une liste de mesures recommandées que vous pouvez suivre pour corriger une erreur charge de travail ou améliorer les performances d'une charge de travail réussie, mais lente.

Principales métriques par lot

Dans le cadre de la version preview, la page Détails du lot de la console Google Cloud inclut des graphiques affichant les valeurs importantes des métriques pour les charges de travail par lot. La métrique les graphiques sont renseignés avec des valeurs une fois le lot terminé.

Tableau de bord des métriques par lot.

Tableau des métriques

Le tableau suivant répertorie les métriques de charge de travail Spark affichées sur le la page Informations sur les lots de la console Google Cloud, qui explique comment les métriques peuvent fournir des insights sur l'état et les performances des charges de travail.

Métrique Que s'affiche-t-il ?
Métriques au niveau de l'exécuteur
Ratio entre le délai de récupération de mémoire et l'environnement d'exécution de la JVM Cette métrique indique le ratio entre le temps de récupération de mémoire (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 forte perte d'objets.
Octets de 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 montre un nombre élevé d'octets de 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 certaines étapes présentent une pression sur la mémoire ou des fuites de mémoire.
Octets lus et écrits Cette métrique affiche le nombre d'octets écrits par rapport au nombre d'octets lus par exécuteur. Des écarts importants au niveau des octets lus ou écrits peuvent indiquer des scénarios dans lesquels les jointures répliquées entraînent une 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. La lecture d'un grand nombre d'enregistrements 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 des enregistrements en attendant. Les exécuteurs qui sont constamment à la traîne en termes de lecture et d'écriture peuvent indiquer des conflits de ressources sur ces nœuds ou des inefficacités de code spécifiques aux exécuteurs.
Ratio du temps d'écriture du brassage par rapport au temps d'exécution La métrique indique le temps que l'exécuteur a passé dans l'environnement d'exécution de brassage par rapport à l'environnement d'exécution global. Si cette valeur est élevée pour certains exécuteurs, cela peut indiquer un décalage des données ou une sérialisation inefficace des données. Vous pouvez identifier les étapes avec de longs temps d'écriture en brassage dans l'UI Spark. Recherchez les tâches aberrantes au sein de ces étapes qui prennent plus de temps que la moyenne. Vérifiez si les exécuteurs avec des temps d'écriture en mode aléatoire élevés affichent également une activité d'E/S sur le disque élevée. Une sérialisation plus efficace et des étapes de partitionnement supplémentaires peuvent s'avérer utiles. Des écritures d'enregistrements très volumineuses par rapport aux lectures d'enregistrements peuvent indiquer une duplication involontaire des données 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 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. Recherchez les partitions de données et déboguez la raison de l'échec d'une étape à l'aide de 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 d'exécuteurs en cours d'exécution. Différence importante entre les exécuteurs obligatoires et les exécuteurs 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 VM utilisée. Si le pourcentage de nœuds maîtres est élevé, cela peut indiquer que le pilote est sous pression sur la mémoire. Pour les autres nœuds de VM, un pourcentage élevé peut indiquer que les exécuteurs sont à court de mémoire, ce qui peut entraîner des déversements de disque importants et un délai d'exécution des charges de travail plus lent. Utilisez l'UI Spark pour analyser les exécuteurs afin de vérifier le temps de récupération de mémoire et les échecs de tâches élevés. Déboguer également le code Spark pour la mise en cache d'ensembles de données volumineux et la diffusion inutile de variables

Journaux de la tâche

Dans le cadre de la version preview, la page Détails du lot de la console Google Cloud Liste les journaux des tâches (charge de travail par lot). Les journaux incluent des avertissements et des erreurs filtrés. à partir de la sortie de la charge de travail et des journaux Spark. Vous pouvez sélectionner Gravité, ajoutez un filtre,puis cliquez sur l'icône Afficher dans l'explorateur de journaux pour ouvrir les journaux par lot sélectionnés Explorateur de journaux :

Exemple: l'explorateur de journaux s'ouvre après avoir choisi Errors dans le 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 l'aperçu de l'UI Spark vous pouvez afficher l'UI Spark dans la console Google Cloud sans avoir pour créer Cluster Dataproc PHS (Serveur d'historique persistant). L'UI Spark collecte les détails de l'exécution Spark à partir des charges de travail par lot. Pour plus d'informations, consultez le guide de l'utilisateur distribué aux clients inscrits. dans la version preview de l'UI Spark.