Lorsque vous envoyez un job Managed Service pour Apache Spark, Managed Service pour Apache Spark collecte automatiquement le résultat du job et le met à votre disposition. Cela signifie que vous pouvez rapidement consulter les résultats des tâches 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 des jobs. Les journaux de l'exécuteur Spark contiennent la sortie de l'exécutable ou du lanceur de jobs, comme un message spark-submit "Submitted application xxx" (Application xxx envoyée). Ils peuvent être utiles pour déboguer les échecs de jobs.
Le pilote de job Managed Service pour Apache Spark, qui est distinct du pilote Spark, est un lanceur pour de nombreux types de jobs. Lors du lancement de tâches Spark, il s'exécute en tant qu'encapsuleur sur l'exécutable spark-submit sous-jacent, qui lance le pilote Spark. Le pilote Spark exécute le job sur le cluster Managed Service pour Apache Spark en mode Spark client ou cluster :
Mode
client: le pilote Spark exécute le job dans le processusspark-submit, et les journaux Spark sont envoyés au pilote de job Managed Service pour Apache Spark.Mode
cluster: le pilote Spark exécute le job dans un conteneur YARN. Les journaux du pilote Spark ne sont pas disponibles pour le pilote de job Managed Service pour Apache Spark.
Présentation de Managed Service pour Apache Spark et des propriétés des jobs 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 la valeur est true, les résultats du pilote de tâches se trouvent dans Logging et sont associés à la ressource de tâche. Lorsque la valeur est false, les résultats du pilote de tâches ne se trouvent pas dans Logging.Remarque : Les paramètres de propriété de cluster suivants sont également requis pour activer les journaux de pilotes 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 des tâches sont associés à la ressource de tâche. Lorsque la valeur est false, les journaux de conteneur YARN des tâches sont associés à la ressource de cluster. |
spark:spark.submit.deployMode |
client ou cluster | Client | Contrôle le mode Spark client ou cluster. |
Jobs Spark envoyés à l'aide de l'API Managed Service pour Apache Spark jobs
Les tableaux de cette section listent l'effet des différents paramètres de propriété sur la destination de la sortie du pilote de job Managed Service pour Apache Spark lorsque les jobs sont envoyés via l'API jobs Managed Service pour Apache Spark, qui inclut l'envoi de jobs via la consoleGoogle Cloud , gcloud CLI et les bibliothèques clientes Cloud.
Les propriétés Managed Service pour Apache Spark et Spark listées peuvent être définies avec l'indicateur --properties lors de la création d'un cluster. Elles s'appliqueront à tous les jobs Spark exécutés sur le cluster. Les propriétés Spark peuvent également être définies avec l'indicateur --properties (sans le préfixe "spark:") lorsqu'un job est envoyé à l'API jobs de Managed Service pour Apache Spark. Elles ne s'appliqueront qu'au job.
Sortie du pilote de job Managed Service pour Apache Spark
Les tableaux suivants listent l'effet de différents paramètres de propriété sur la destination de la sortie du pilote de job Managed Service pour Apache Spark.
dataproc: |
Sortie |
|---|---|
| false (valeur par défaut) |
|
| vrai |
|
Journaux du pilote Spark
Les tableaux suivants indiquent l'effet de différents paramètres de propriété sur la destination des journaux de pilote Spark.
spark: |
dataproc: |
dataproc: |
Sortie du pilote |
|---|---|---|---|
| Client | false (valeur par défaut) | "true" ou "false" |
|
| Client | vrai | "true" ou "false" |
|
| cluster | false (valeur par défaut) | faux |
|
| cluster | vrai | vrai |
|
Journaux de l'exécuteur Spark
Les tableaux suivants indiquent l'effet de différents paramètres de propriété sur la destination des journaux d'exécution Spark.
dataproc: |
Journal de l'exécuteur |
|---|---|
| false (valeur par défaut) | Dans Logging : yarn-userlogs sous la ressource de cluster |
| vrai | Dans Logging dataproc.job.yarn.container sous la ressource de job |
Jobs Spark envoyés sans utiliser l'API jobs de Managed Service pour Apache Spark
Cette section décrit l'effet de 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 jobs Managed Service pour Apache Spark, 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 jobs ne disposent pas d'ID ni de pilotes Managed Service pour Apache Spark.
Journaux du pilote Spark
Les tableaux suivants indiquent l'effet de différents paramètres de propriété sur la destination des journaux de pilote Spark pour les jobs non envoyés via l'API Managed Service pour Apache Spark jobs.
spark: |
Sortie du pilote |
|---|---|
| Client |
|
| cluster |
|
Journaux de l'exécuteur Spark
Lorsque les jobs Spark ne sont pas envoyés via l'API jobs de Managed Service pour Apache Spark, 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 aux résultats des jobs Managed Service for Apache Spark dans la console Google Cloud , la gcloud CLI, Cloud Storage ou Logging.
Console
Pour afficher le résultat d'un job, accédez à la section Jobs (Jobs) de Managed Service pour Apache Spark de votre projet, puis cliquez sur l'ID du job pour afficher le résultat.
Si la tâche est en cours d'exécution, les résultats sont actualisés périodiquement avec le nouveau contenu.
Commande gcloud
Lorsque vous envoyez une tâche à l'aide de la commande gcloud dataproc jobs submit, les résultats de la tâche s'affichent 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, les résultats des jobs sont stockés 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 des tâches 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 ...