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:
Überwachen Sie Logmesswerte wie CPU-Nutzung und Arbeitsspeicher, um die Jobanforderungen zu schätzen.
Wenn Sie einen Jobcluster erstellen:
Verwenden Sie einen größeren Arbeitsspeicher-Maschinentyp für die Cluster-Master-VM.
Wenn
1GB
pro Job mehr als erforderlich ist, setzen Sie diedataproc:dataproc.scheduler.driver-size-mb
Cluster-Property auf weniger als1024
.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:
Wenn Sie einen Cluster erstellen:
- Erhöhen Sie den Wert des Clusterattributs
dataproc:dataproc.scheduler.max-memory-used
. Setzen Sie sie beispielsweise über dem Standardwert0.90
auf0.95
. - Erhöhen Sie den Wert des Clusterattributs
dataproc.scheduler.min-free-memory.mb
. Der Standardwert ist256
MB.
- Erhöhen Sie den Wert des Clusterattributs
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:
- Standardmäßig ist das Senden des Dataproc-Agent-Jobs auf
1.0 QPS
begrenzt. Sie können ihn beim Erstellen eines Clusters mit dem Clusterattributdataproc: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.