Fehlerbehebung bei Dataproc-Jobs

Auf dieser Seite finden Sie Informationen zum Überwachen und Beheben von Dataproc-Jobs sowie zur Bedeutung von Dataproc-Job-Fehlermeldungen.

Monitoring und Fehlerbehebung für Jobs

Verwenden Sie die Google Cloud CLI, die Dataproc REST API und die Google Cloud Console, um Dataproc-Jobs zu analysieren und Fehler zu beheben.

gcloud-CLI

So prüfen Sie den Status eines laufenden Jobs:

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

Informationen zum Aufrufen der Job-Treiberausgabe finden Sie unter Jobausgabe ansehen.

REST API

Rufen Sie jobs.get auf, um die Felder JobStatus.State, JobStatus.Substate, JobStatus.details und YarnApplication zu untersuchen.

Console

Informationen zum Aufrufen der Job-Treiberausgabe finden Sie unter Jobausgabe ansehen.

Wenn Sie das Dataproc-Agent-Log in Logging aufrufen möchten, wählen Sie Dataproc-Cluster → Clustername → Cluster-UUID aus der Clusterauswahl im Log-Explorer aus.

Wählen Sie dann mit der Logauswahl google.dataproc.agent Logs aus.

Job Logs in Logging ansehen

Wenn ein Job fehlschlägt, können Sie auf Joblogs in Logging zugreifen.

Bestimmen, wer einen Job gesendet hat

In den Jobdetails: Im Feld submittedBy können Sie einsehen, wer diesen Job gesendet hat. Diese Jobausgabe zeigt beispielsweise, dass user@domain den Beispieljob an einen Cluster gesendet hat.

...
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

Fehlermeldungen

Aufgabe wurde nicht übernommen

Das bedeutet, dass der Dataproc-Agent auf dem Masterknoten die Aufgabe nicht von der Steuerungsebene abrufen konnte. Dies ist oft auf fehlenden Speicher (Out-Of-Memory, OOM) oder auf Netzwerkprobleme zurückzuführen. Wenn der Job zuvor erfolgreich ausgeführt wurde und Sie die Netzwerkkonfigurationseinstellungen nicht geändert haben, ist OOM die wahrscheinlichste Ursache. Dies ist oft das Ergebnis der Einreichung vieler gleichzeitig ausgeführter Jobs oder Jobs, deren Treiber viel Arbeitsspeicher verbrauchen (z. B. Jobs, die große Datensätze in den Arbeitsspeicher laden).

Kein aktiver Agent auf Masterknoten gefunden

Das bedeutet, dass der Dataproc-Agent auf dem Masterknoten nicht aktiv ist und keine neuen Jobs annehmen kann. Dies ist oft auf fehlenden Speicher (Out-Of-Memory, OOM) oder auf Netzwerkprobleme zurückzuführen oder die VM des Masterknotens ist nicht betriebsbereit. Wenn der Job zuvor erfolgreich ausgeführt wurde und Sie die Netzwerkkonfigurationseinstellungen nicht geändert haben, ist OOM die wahrscheinlichste Ursache. Dies ist oft auf die Einreichung vieler gleichzeitig ausgeführter Jobs oder Jobs zurückzuführen, deren Treiber viel Arbeitsspeicher verbrauchen (Jobs, die große Datensätze in den Arbeitsspeicher laden). Dieses Problem kann behoben werden, indem Sie den Dataproc-Cluster neu starten (anhalten und dann starten) oder die Jobeinreichung später noch einmal versuchen. Hinweis:Wenn Sie einen Cluster anhalten, schlagen alle laufenden Jobs fehl.

Aufgabe wurde nicht gefunden

Dieser Fehler gibt an, dass der Cluster gelöscht wurde, während ein Job ausgeführt wurde. Sie können die folgenden Aktionen ausführen, um den Nutzer zu ermitteln, der das Löschen durchgeführt hat, und zu bestätigen, dass das Löschen des Clusters während der Ausführung eines Jobs stattgefunden hat:

  • Sehen Sie sich die Dataproc-Audit-Logs an, um das Hauptkonto zu ermitteln, das den Löschvorgang ausgeführt hat.

  • Prüfen Sie mithilfe von Logging oder der gcloud CLI, ob der letzte bekannte Status der YARN-Anwendung RUNNING war:

    • Verwenden Sie in der Protokollierung den folgenden Filter:
    resource.type="cloud_dataproc_cluster"
    resource.labels.cluster_name="CLUSTER_NAME"
    resource.labels.cluster_uuid="CLUSTER_UUID"
    "YARN_APPLICATION_ID State change from"
    
    • Führen Sie gcloud dataproc jobs describe job-id --region=REGION aus und prüfen Sie dann yarnApplications: > STATE in der Ausgabe.

Um Task not found-Fehler zu vermeiden, sollten Sie Cluster mithilfe von Automatisierungen so konfigurieren, dass sie erst gelöscht werden, wenn alle laufenden Jobs abgeschlossen sind.