Résoudre les problèmes liés aux tâches Dataproc

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

Surveillance et débogage des tâches

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

CLI gcloud

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 la section Afficher le résultat de la tâche.

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 la section Afficher le résultat de la tâche.

Pour afficher le journal de l'agent dataproc dans Logging (Journalisation), sélectionnez Dataproc Cluster→Cluster Name→Cluster UUID (Cluster Dataproc > Nom du 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 tâches dans Logging

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

Déterminer l'émetteur 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

Cela 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 s'est exécutée correctement précédemment et que vous n'avez pas modifié les paramètres de configuration réseau, l'erreur OOM est la cause la plus probable, souvent le résultat de l'envoi de nombreuses tâches exécutées simultanément ou de tâches dont les pilotes consomment une quantité de mémoire importante (par exemple, des tâches qui chargent de grands ensembles de données dans la mémoire).

Aucun agent actif n'a été détecté sur le ou les nœuds maîtres.

Cela 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 saturée (OOM) ou de réseau, ou si la VM du nœud maître n'est pas saine. Si la tâche s'est exécutée correctement précédemment et que vous n'avez pas modifié les paramètres de configuration réseau, l'erreur OOM est la cause la plus probable, qui résulte souvent de l'envoi de nombreuses tâches exécutées simultanément ou de tâches dont les pilotes consomment une quantité de mémoire importante (tâches qui chargent de grands ensembles de données dans la mémoire). Pour résoudre ce problème, redémarrez (arrêtez, puis démarrez) le cluster Dataproc ou réessayez d'envoyer la tâche plus tard. Remarque:L'arrêt d'un cluster entraîne l'échec de toutes les tâches en cours d'exécution.

Tâche introuvable

Cette erreur indique que le cluster a été supprimé alors qu'une tâche était en cours d'exécution. Vous pouvez effectuer les actions suivantes pour identifier le principal qui a effectué la suppression et confirmer que la suppression du cluster s'est produite lorsqu'une tâche était en cours d'exécution:

  • Affichez les journaux d'audit Dataproc pour identifier le principal qui a effectué l'opération de suppression.

  • Utilisez Logging ou gcloud CLI pour vérifier que l'état connu de l'application YARN était RUNNING:

    • Utilisez le filtre suivant dans la section "Journalisation" :
    resource.type="cloud_dataproc_cluster"
    resource.labels.cluster_name="CLUSTER_NAME"
    resource.labels.cluster_uuid="CLUSTER_UUID"
    "YARN_APPLICATION_ID State change from"
    
    • Exécutez gcloud dataproc jobs describe job-id --region=REGION, puis vérifiez yarnApplications: > STATE dans la sortie.

Pour éviter les erreurs Task not found, utilisez l'automatisation pour vous assurer que les clusters ne sont pas supprimés avant la fin de toutes les tâches en cours d'exécution.