Sortie et journaux des tâches Dataproc

Lorsque vous envoyez une tâche Dataproc, Dataproc recueille automatiquement la sortie de la tâche et la met à votre disposition. Cela signifie que vous pouvez rapidement consulter les résultats de la tâche sans avoir à maintenir une connexion au cluster pendant l'exécution de vos tâches ni à parcourir des fichiers journaux compliqués.

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 la sortie de la tâche. Les journaux de l'exécuteur Spark contiennent la sortie de l'exécutable ou du lanceur de la tâche, comme un message spark-submit "Application xxx envoyée". Ils peuvent être utiles pour déboguer les échecs de tâche.

Le pilote de tâche Dataproc, qui est distinct du pilote Spark, est un lanceur de nombreux types de tâches. Lors du lancement de tâches Spark, il s'exécute en tant que wrapper sur l'exécutable spark-submit sous-jacent, qui lance le pilote Spark. Le pilote Spark exécute la tâche sur le cluster Dataproc en mode client ou cluster Spark:

  • 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 tâche Dataproc.

  • Mode cluster: le pilote Spark exécute la tâche dans un conteneur YARN. Les journaux du pilote Spark ne sont pas disponibles pour le pilote de tâches 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 de conteneur YARN de la tâche sont associés à la ressource de tâche. Lorsque la valeur est false, les journaux de conteneur YARN de la tâche sont associés à la ressource de cluster.
spark:spark.submit.deployMode client ou cluster Client Contrôle le mode client ou cluster de Spark.

Tâches Spark envoyées à l'aide de l'API Dataproc jobs

Les tableaux de cette section indiquent l'impact des différents paramètres de propriété sur la destination de la sortie du pilote de tâche Dataproc lorsque des tâches sont envoyées via l'API Dataproc jobs, ce qui inclut l'envoi de tâches via la console Google Cloud, la gcloud CLI et les bibliothèques clientes Cloud.

Les propriétés Dataproc et Spark listées peuvent être définies avec l'indicateur --properties lors de la création d'un cluster et s'appliquer à toutes les tâches Spark exécutées sur le cluster. Les propriétés Spark peuvent également être définies avec l'indicateur --properties (sans le préfixe "spark:") lorsqu'une tâche est envoyée à l'API jobs Dataproc 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)
  • En streaming vers le client
  • Dans Cloud Storage, à l'emplacement driverOutputResourceUri généré par Dataproc
  • Non consigné
vrai
  • En streaming vers le client
  • Dans Cloud Storage, à l'emplacement driverOutputResourceUri généré par Dataproc
  • Dans "Journalisation" : 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 tâche
cluster false (valeur par défaut) faux
  • Non diffusé en streaming vers le client
  • Hors Cloud Storage
  • Dans Logging yarn-userlogs sous la ressource de cluster
cluster vrai vrai
  • Non diffusé en streaming vers le client
  • Hors Cloud Storage
  • Dans Logging: dataproc.job.yarn.container sous la ressource de tâche

Journaux de l'exécuteur Spark

Les tableaux suivants indiquent l'impact des 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 tâche

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

Cette section indique l'effet des différents paramètres de propriété sur la destination des journaux de tâches Spark lorsque les tâches sont envoyées sans utiliser l'API Dataproc jobs, par exemple lorsque vous envoyez une tâche directement sur un nœud de cluster à l'aide de spark-submit ou lorsque vous utilisez un notebook Jupyter ou Zeppelin. Ces tâches ne comportent pas d'ID ni de pilotes de tâches Dataproc.

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 pour les tâches qui ne sont pas envoyées via l'API Dataproc jobs.

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

Journaux de l'exécuteur Spark

Lorsque les tâches Spark ne sont pas envoyées via l'API Dataproc jobs, les journaux de l'exécuteur 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

Dans Cloud Storage, le résultat de la tâche est stocké dans le bucket de préproduction ou le bucket 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

Pour savoir comment afficher le résultat des tâches Dataproc dans Logging, consultez Journaux Dataproc.