Résoudre les problèmes liés aux jobs Dataproc

Cette page fournit des informations pour vous aider à surveiller et à déboguer les tâches Dataproc, et à comprendre les messages d'erreur liés à ces tâches.

Surveillance et débogage des tâches

Utilisez Google Cloud CLI, l'API REST Dataproc et la console Google Cloud pour analyser et déboguer les tâches Dataproc.

gcloud CLI

Pour examiner le statut d'une tâche en cours d'exécution, procédez comme suit :

gcloud dataproc jobs describe job-id \
    --region=region

Pour afficher les résultats du pilote de la tâche, consultez Afficher les résultats du job.

API REST

Appelez jobs.get pour examiner les champs JobStatus.State, JobStatus.Substate, JobStatus.details et YarnApplication d'une tâche.

Console

Pour afficher les résultats du pilote de la tâche, consultez Afficher les résultats du job.

Pour afficher le journal de l'agent Dataproc dans Logging, sélectionnez Cluster Dataproc → Nom du cluster → Cluster UUID dans le sélecteur de cluster de l'Explorateur de journaux.

Utilisez ensuite le sélecteur de journaux pour sélectionner les journaux google.dataproc.agent.

Afficher les journaux de jobs dans Logging

Si une tâche échoue, vous pouvez accéder aux journaux des tâches dans Logging.

Déterminer l'auteur d'une tâche

La recherche des détails d'une tâche affichera l'émetteur de la tâche dans le champ submittedBy. Par exemple, le résultat de la tâche suivant montre que user@domain a envoyé l'exemple de tâche à un cluster.

...
placement:
  clusterName: cluster-name
  clusterUuid: cluster-uuid
reference:
  jobId: job-uuid
  projectId: project
status:
  state: DONE
  stateStartTime: '2018-11-01T00:53:37.599Z'
statusHistory:
- state: PENDING
  stateStartTime: '2018-11-01T00:33:41.387Z'
- state: SETUP_DONE
  stateStartTime: '2018-11-01T00:33:41.765Z'
- details: Agent reported job success
  state: RUNNING
  stateStartTime: '2018-11-01T00:33:42.146Z'
submittedBy: user@domain

Messages d'erreur

  • La tâche n'a pas été acquise:indique que l'agent Dataproc sur le nœud maître n'a pas pu acquérir la tâche à partir du plan de contrôle. Cela se produit souvent en raison de problèmes de mémoire saturée ou de réseau. Si la tâche a bien été exécutée précédemment et que vous n'avez pas modifié les paramètres de configuration du réseau, les problèmes de mémoire saturée sont la cause la plus probable, souvent le résultat de l'envoi de nombreuses tâches en cours d'exécution simultanées ou de tâches dont les pilotes consomment une mémoire importante (par exemple, les tâches qui chargent de grands ensembles de données en mémoire).

  • Aucun agent sur le ou les nœuds maîtres n'est actif:indique que l'agent Dataproc sur le nœud maître n'est pas actif et ne peut pas accepter de nouvelles tâches. Cela se produit souvent en raison de problèmes de mémoire insuffisante (OOM) ou de réseau, ou si la VM du nœud maître n'est pas opérationnelle. Si la tâche a été exécutée avec succès précédemment et que vous n'avez pas modifié les paramètres de configuration réseau, c'est la cause la plus probable. Elle est souvent due à l'envoi de nombreuses tâches exécutées simultanément ou dont les pilotes consomment beaucoup de mémoire (tâches qui chargent des ensembles de données volumineux en mémoire). Ce problème peut être résolu en redémarrant (arrêtant, puis en démarrant) le cluster Dataproc ou en relançant l'envoi du job ultérieurement. Remarque:L'arrêt d'un cluster entraîne l'échec de toutes les tâches en cours d'exécution.

  • Task not found (Tâche introuvable) : indique que le cluster a été supprimé pendant l'exécution d'une tâche. Pour éviter cette erreur, avant d'envoyer une tâche, vérifiez que l'état du cluster est RUNNING. Pour ce faire, consultez l'état du cluster sur la page Clusters de la console Google Cloud, exécutez la commande gcloud dataproc clusters describe ou vérifiez ClusterStatus.State avec une requête API clusters.get.