Sortie et journaux des tâches Dataproc

Lorsque vous envoyez un job Dataproc, Dataproc collecte automatiquement les et le met à votre disposition. Cela signifie que vous pouvez examiner rapidement les résultats d'un job sans avoir à gérer de connexion au cluster pendant que vos jobs s'exécutent ou consultent des journaux complexes .

Journaux Spark

Il existe deux types de journaux Spark: les journaux du pilote Spark et les journaux de l'exécuteur Spark. Les journaux du pilote Spark contiennent les résultats du job. Les journaux de l'exécuteur Spark contiennent un exécutable de job ou la sortie du lanceur d'applications, par exemple spark-submit "Demande d'application xxx" un message peut être utile pour déboguer les échecs de tâches.

Le pilote de job Dataproc, qui est différent du pilote Spark, est un lanceur d'applications pour de nombreux types de tâches. Lors du lancement de jobs Spark, il s'exécute sur l'exécutable spark-submit sous-jacent, qui lance Spark pilote. Le pilote Spark exécute le job sur le cluster Dataproc dans Spark Mode client ou cluster:

  • Mode client: le pilote Spark exécute la tâche dans le processus spark-submit. et les journaux Spark sont envoyés au pilote de jobs Dataproc.

  • Mode cluster: le pilote Spark exécute la tâche dans un conteneur YARN. Pilote Spark les journaux ne sont pas disponibles pour le pilote de jobs Dataproc.

Présentation des propriétés des tâches Dataproc et Spark

Propriété Valeur Par défaut Description
dataproc:dataproc.logging.stackdriver.job.driver.enable True ou False faux Doit être défini au moment de la création du cluster. Lorsque true est défini, la sortie du pilote de tâches est dans la journalisation, associée à la ressource de tâche. Lorsque false est défini, la sortie du pilote de tâches n'est pas dans la journalisation.
Remarque : Les paramètres de propriété de cluster suivants sont également requis pour activer les journaux du pilote de tâches dans Logging. Ils sont définis par défaut lors de la création d'un cluster : dataproc:dataproc.logging.stackdriver.enable=true et dataproc:jobs.file-backed-output.enable=true.
dataproc:dataproc.logging.stackdriver.job.yarn.container.enable True ou False faux Doit être défini au moment de la création du cluster. Lorsque la valeur est true, les journaux du conteneur YARN sont associés avec la ressource du job ; Lorsque false, la tâche est effectuée dans les journaux du conteneur YARN sont associés à la ressource de cluster.
spark:spark.submit.deployMode client ou cluster Client Contrôle le mode client ou cluster de Spark.

Jobs Spark envoyés à l'aide de l'API Dataproc jobs

Les tableaux de cette section listent l'effet de différents paramètres de propriété sur la destination des résultats du pilote de jobs Dataproc lorsque les jobs sont envoyés via l'API Dataproc jobs, qui inclut l'envoi de jobs via le la console Google Cloud, gcloud CLI et les bibliothèques clientes Cloud.

Les propriétés Dataproc et Spark répertoriées peut être défini avec l'option --properties lors de la création d'un cluster, et s'appliquera à tous les jobs Spark exécutés sur le cluster. Les propriétés Spark peuvent aussi être définies l'option --properties (sans le préfixe "spark:") lorsqu'une tâche est envoyés à l'API Dataproc jobs, et ne s'appliqueront qu'à la tâche.

Résultats du pilote de tâches Dataproc

Les tableaux suivants indiquent l'impact des différents paramètres de propriété sur la destination de la sortie du pilote de tâche Dataproc.

dataproc:
dataproc.logging.stackdriver.job.driver.enable
Sortie
false (valeur par défaut)
  • Diffusion vers le client
  • Dans Cloud Storage, à l'emplacement driverOutputResourceUri généré par Dataproc
  • Non consigné
vrai
  • Diffusion vers le client
  • Dans Cloud Storage, au niveau du Dataproc driverOutputResourceUri
  • Dans Logging: dataproc.job.driver sous la ressource de tâche.

Journaux du pilote Spark

Les tableaux suivants indiquent l'impact des différents paramètres de propriété sur la destination des journaux du pilote Spark.

spark:
spark.submit.deployMode
dataproc:
dataproc.logging.stackdriver.job.driver.enable
dataproc:
dataproc.logging.stackdriver.job.yarn.container.enable
Sortie du pilote
Client false (valeur par défaut) True ou False
  • En streaming vers le client
  • Dans Cloud Storage, à l'emplacement driverOutputResourceUri généré par Dataproc
  • Non consigné
Client vrai True ou False
  • En streaming vers le client
  • Dans Cloud Storage, à l'emplacement driverOutputResourceUri généré par Dataproc
  • Dans Logging: dataproc.job.driver sous la ressource de job
cluster false (valeur par défaut) faux
  • Non diffusé en streaming vers le client
  • Hors Cloud Storage
  • Dans Logging yarn-userlogs sous la ressource du cluster
cluster vrai vrai
  • Non diffusé en streaming vers le client
  • En dehors de Cloud Storage
  • Dans Logging : dataproc.job.yarn.container sous la ressource de tâche

Journaux de l'exécuteur Spark

Les tableaux suivants répertorient l'effet de différents paramètres de propriété sur la destination des journaux de l'exécuteur Spark.

dataproc:
dataproc.logging.stackdriver.job.yarn.container.enable
Journal de l'exécuteur
false (valeur par défaut) Dans "Logging" (Journalisation) : yarn-userlogs sous la ressource de cluster
vrai Dans Logging dataproc.job.yarn.container, sous la ressource de job

Tâches Spark envoyées sans utiliser l'API Dataproc jobs

Cette section liste l'effet des différents paramètres de la propriété destination des journaux de jobs Spark lors de l'envoi de jobs sans utiliser l'API jobs Dataproc, par exemple lors de l'envoi un job directement sur un nœud de cluster à l'aide de spark-submit ou lorsque vous utilisez un ou un notebook Zeppelin. Ces tâches n'ont pas d'ID ni de pilotes Dataproc.

Journaux du pilote Spark

Les tableaux suivants répertorient l'effet de différents paramètres de propriété sur la Destination des journaux du pilote Spark pour les jobs non envoyés via l'API jobs Dataproc.

spark:
spark.submit.deployMode
Sortie du pilote
Client
  • En streaming vers le client
  • En dehors de Cloud Storage
  • Pas dans Logging
cluster
  • Non diffusé vers le client
  • Hors Cloud Storage
  • Dans Logging yarn-userlogs sous la ressource du cluster

Journaux de l'exécuteur Spark

Lorsque des jobs Spark ne sont pas envoyés via l'API Dataproc jobs, l'exécuteur les journaux se trouvent dans Logging yarn-userlogs sous la ressource de cluster.

Afficher le résultat du job

Vous pouvez accéder à la sortie de la tâche Dataproc dans la console Google Cloud, la gcloud CLI, Cloud Storage ou Logging.

Console

Pour afficher le résultat de la tâche, accédez à la section Jobs (Tâches) Dataproc de votre projet, puis cliquez sur l'ID de la tâche pour afficher les résultats.

Si la tâche est en cours d'exécution, le résultat est actualisé périodiquement avec le nouveau contenu.

Commande gcloud

Lorsque vous envoyez une tâche à l'aide de la commande gcloud dataproc jobs submit, le résultat de la tâche s'affiche dans la console. Vous pouvez "retrouver" ces résultats ultérieurement, sur un autre ordinateur ou dans une nouvelle fenêtre, en transmettant l'ID de votre tâche à la commande gcloud dataproc jobs wait. L'ID de tâche est un GUID, tel que 5c1754a5-34f7-4553-b667-8a1199cb9cab. Voici un exemple.

gcloud dataproc jobs wait 5c1754a5-34f7-4553-b667-8a1199cb9cab \
    --project my-project-id --region my-cluster-region
Waiting for job output...
... INFO gcs.GoogleHadoopFileSystemBase: GHFS version: 1.4.2-hadoop2
... 16:47:45 INFO client.RMProxy: Connecting to ResourceManager at my-test-cluster-m/
...

Cloud Storage

Le résultat du job est stocké dans Cloud Storage le bucket de préproduction ou le bucket que vous avez spécifié lors de la création du cluster. Dans Cloud Storage, un lien vers les résultats de la tâche est fourni dans le champ Job.driverOutputResourceUri renvoyé par :

  • une requête d'API jobs.get.
  • une commande gcloud dataproc jobs describe job-id.
    $ gcloud dataproc jobs describe spark-pi
    ...
    driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput
    ...
    

Journalisation

Consultez la page Journaux Dataproc. pour savoir comment afficher les résultats d'un job Dataproc dans Logging.