Fehlerbehebung bei Jobverzögerungen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Auf dieser Seite sind häufige Gründe für Verzögerungen bei der Planung von Dataproc-Jobs aufgeführt. Außerdem finden Sie Informationen, wie Sie diese Verzögerungen vermeiden können.

Übersicht

Im Folgenden sind die häufigsten Gründe dafür aufgeführt, dass ein Dataproc-Job verzögert wird (gedrosselt):

  • Zu viele laufende Jobs
  • Hohe Systemspeichernutzung
  • Nicht genügend freier Speicher
  • Ratenbegrenzung wurde überschritten

Normalerweise wird die Jobverzögerungsnachricht in folgendem Format ausgegeben:

Awaiting execution [SCHEDULER_MESSAGE]"

Die folgenden Abschnitte enthalten mögliche Ursachen und Lösungen für bestimmte Szenarien der Jobverzögerung.

Zu viele laufende Jobs

Scheduler-Nachricht:

Throttling job ### (and maybe others): Too many running jobs (current=xx max=xx)

Ursachen:

Die maximale Anzahl gleichzeitiger Jobs, die auf dem Arbeitsspeicher der Master-VM basiert, wird überschritten (der Jobtreiber wird auf der Master-VM des Dataproc-Clusters ausgeführt). Standardmäßig reserviert Dataproc 3,5 GB Arbeitsspeicher für Anwendungen und lässt einen Job pro GB zu.

Beispiel: Der Maschinentyp n1-standard-4 hat 15GB Arbeitsspeicher. Da 3.5GB für Overhead reserviert ist, bleibt 11.5GB erhalten. 11GB kann auf eine Ganzzahl abgerundet werden und ist für bis zu 11 gleichzeitige Jobs verfügbar.

Lösungen:

  1. Überwachen Sie Logmesswerte wie CPU-Nutzung und Arbeitsspeicher, um die Jobanforderungen zu schätzen.

  2. Wenn Sie einen Jobcluster erstellen:

    1. Verwenden Sie einen größeren Arbeitsspeicher-Maschinentyp für die Cluster-Master-VM.

    2. Wenn 1GB pro Job mehr als erforderlich ist, setzen Sie die dataproc:dataproc.scheduler.driver-size-mb Cluster-Property auf weniger als 1024.

    3. Legen Sie für das Clusterattribut dataproc:dataproc.scheduler.max-concurrent-jobs einen Wert fest, der Ihren Jobanforderungen entspricht.

Großer Systemspeicher oder zu wenig freier Speicher

Scheduler-Nachricht:

Throttling job xxx_____JOBID_____xxx (and maybe others): High system memory usage (current=xx%)

Throttling job xxx_____JOBID_____xxx (and maybe others): Not enough free memory (current=xx min=xx)

Ursachen:

Standardmäßig drosselt der Dataproc-Agent die Jobübermittlung, wenn die Speichernutzung 90 % erreicht (0.9)). Wenn dieses Limit erreicht ist, können keine neuen Jobs geplant werden.

Der für die Planung eines anderen Jobs im Cluster erforderliche Speicherplatz ist nicht ausreichend.

Lösung:

  1. Wenn Sie einen Cluster erstellen:

    1. Erhöhen Sie den Wert des Clusterattributs dataproc:dataproc.scheduler.max-memory-used. Setzen Sie sie beispielsweise über dem Standardwert 0.90 auf 0.95.
    2. Erhöhen Sie den Wert des Clusterattributs dataproc.scheduler.min-free-memory.mb. Der Standardwert ist 256 MB.

Ratenbegrenzung für Jobs überschritten

Scheduler-Nachricht:

Throttling job xxx__JOBID___xxx (and maybe others): Rate limit

Ursachen:

Der Dataproc-Agent hat das Limit für die Jobübermittlungsrate erreicht.

Lösungen:

  1. Standardmäßig ist das Senden des Dataproc-Agent-Jobs auf 1.0 QPS begrenzt. Sie können ihn beim Erstellen eines Clusters mit dem Clusterattribut dataproc:dataproc.scheduler.job-submission-rate auf einen anderen Wert festlegen.

Jobstatus ansehen.

Informationen zum Anzeigen des Jobstatus und von Details finden Sie unter Jobmonitoring und Fehlerbehebung.