Fehlerbehebung bei Dataproc-Jobs

In diesem Dokument werden häufige Fehlermeldungen für Jobs aufgeführt und Informationen zum Monitoring und zur Fehlerbehebung für Jobs bereitgestellt, um Ihnen bei der Fehlerbehebung von Dataproc-Jobs zu helfen.

Häufige Fehlermeldungen für Jobs

Aufgabe wurde nicht abgerufen

Dies weist darauf hin, 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 Einstellungen für die Netzwerk konfiguration nicht geändert haben, ist OOM wahrscheinlich die Ursache. Eventuell werden viele Jobs gleichzeitig ausgeführt, oder die Treiber einiger Jobs verbrauchen viel Arbeitsspeicher (Beispiel: Jobs, die große Datasets in den Speicher laden).

Kein aktiver Agent auf Masterknoten gefunden

Dies weist darauf hin, 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 darauf, dass die VM des Masterknotens fehlerhaft ist. Wenn der Job zuvor erfolgreich ausgeführt wurde und Sie die Einstellungen für die Netzwerkkonfiguration nicht geändert haben, ist OOM wahrscheinlich die Ursache. Eventuell werden viele Jobs gleichzeitig ausgeführt, oder die Treiber einiger Jobs verbrauchen viel Arbeitsspeicher (Beispiel: Jobs, die große Datasets in den Speicher laden).

So können Sie das Problem beheben:

Aufgabe wurde nicht gefunden

Dieser Fehler weist darauf hin, dass der Cluster gelöscht wurde, während ein Job ausgeführt wurde. Sie können die folgenden Schritte ausführen, um das Hauptkonto zu ermitteln, das den Löschvorgang ausgeführt hat, und zu bestätigen, dass der Cluster gelöscht wurde, während ein Job ausgeführt wurde:

Um Task not found Fehler zu vermeiden, verwenden Sie die Automatisierung, um sicherzustellen, dass Cluster nicht gelöscht werden bevor alle laufenden Jobs abgeschlossen sind.

Kein Speicherplatz mehr auf dem Gerät

Dataproc schreibt HDFS- und Scratch- Daten auf die Festplatte. Diese Fehlermeldung weist darauf hin, dass der Cluster mit zu wenig Festplattenspeicher erstellt wurde. So analysieren und vermeiden Sie diesen Fehler:

  • Prüfen Sie auf der Seite Clusterdetails in der Google Cloud console auf dem Tab Configuration die Größe des primären Clusterlaufwerks. Die empfohlene Mindestgröße des Laufwerks beträgt 1000 GB für Cluster mit dem n1-standard-4 Maschinentyp und 2 TB für Cluster mit dem n1-standard-32 Maschinentyp.

  • Wenn die Größe des Clusterlaufwerks kleiner als die empfohlene Größe ist, erstellen Sie den Cluster mit mindestens der empfohlenen Größe neu.

  • Wenn die Laufwerksgröße die empfohlene Größe oder mehr beträgt, stellen Sie eine SSH-Verbindung zur Master-VM des Clusters her und führen Sie dann df -h auf der Master-VM aus, um die Festplattennutzung zu prüfen und festzustellen, ob zusätzlicher Festplattenspeicher erforderlich ist.

  • Erfassen und prüfen Sie die Laufwerksmesswerte.

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 in der Clusterauswahl des Logs Explorers Dataproc-Cluster → Clustername → Cluster-UUID aus.

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

Joblogs in Logging ansehen

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

Ermitteln, wer einen Job gesendet hat

In den Jobdetails: Im submittedBy Feld 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