Auf dieser Seite werden häufige Ursachen für Verzögerungen bei der Planung von Dataproc-Jobs aufgeführt. Außerdem finden Sie hier Informationen, die Ihnen helfen können, diese zu vermeiden.
Übersicht
Im Folgenden sind die häufigsten Gründe für Verzögerungen (Drosselung) bei Dataproc-Jobs aufgeführt:
- Zu viele aktive Jobs
- Hohe Arbeitsspeichernutzung des Systems
- Nicht genügend freier Speicher
- Ratenbegrenzung wurde überschritten
Normalerweise wird die Meldung zur Jobverzögerung im folgenden Format ausgegeben:
Awaiting execution [SCHEDULER_MESSAGE]"
In den folgenden Abschnitten finden Sie mögliche Ursachen und Lösungen für bestimmte Szenarien, in denen es zu Verzögerungen bei Jobs kommt.
Zu viele aktive Jobs
Planernachricht:
Throttling job ### (and maybe others): Too many running jobs (current=xx max=xx)
Ursachen:
Die maximale Anzahl gleichzeitiger Jobs basierend auf dem Arbeitsspeicher der Master-VM wurde überschritten (der Job-Treiber wird auf der Master-VM des Dataproc-Clusters ausgeführt). Standardmäßig reserviert Dataproc 3,5 GB Arbeitsspeicher für Anwendungen und erlaubt 1 Job pro GB.
Beispiel: Der Maschinentyp n1-standard-4 hat 15GB Arbeitsspeicher. Nachdem 3.5GB für Gemeinkosten reserviert wurde, bleiben 11.5GB übrig. Abgerundet auf eine Ganzzahl ist 11GB für bis zu 11 gleichzeitige Jobs verfügbar.
Lösungen:
Überwachen Sie Log-Messwerte wie CPU- und Arbeitsspeichernutzung, um die Jobanforderungen zu schätzen.
Wenn Sie einen Jobcluster erstellen, gilt Folgendes:
Verwenden Sie für die Master-VM des Clusters einen Maschinentyp mit mehr Arbeitsspeicher.
Wenn
1GBpro Job mehr ist, als Sie benötigen, legen Sie diedataproc:dataproc.scheduler.driver-size-mb-Clustereigenschaft auf einen Wert unter1024fest.Legen Sie das Clusterattribut
dataproc:dataproc.scheduler.max-concurrent-jobsauf einen Wert fest, der Ihren Jobanforderungen entspricht.
Viel Systemspeicher oder nicht genügend freier Speicher
Planernachricht:
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 dieser Grenzwert erreicht ist, können keine neuen Jobs geplant werden.
Der freie Arbeitsspeicher, der zum Planen eines weiteren Jobs im Cluster erforderlich ist, reicht nicht aus.
Lösung:
Wenn Sie einen Cluster erstellen, gilt Folgendes:
- Erhöhen Sie den Wert des Clusterattributs
dataproc:dataproc.scheduler.max-memory-used. Legen Sie ihn beispielsweise über dem Standardwert0.90auf0.95fest. - Erhöhen Sie den Wert des Clusterattributs
dataproc.scheduler.min-free-memory.mb. Der Standardwert ist256MB.
- Erhöhen Sie den Wert des Clusterattributs
Job-Ratenlimit überschritten
Planernachricht:
Throttling job xxx__JOBID___xxx (and maybe others): Rate limit
Ursachen:
Der Dataproc-Agent hat das Limit für die Job-Einreichungsrate erreicht.
Lösungen:
- Standardmäßig ist die Jobübermittlung durch den Dataproc-Agent auf
1.0 QPSbegrenzt. Sie können einen anderen Wert festlegen, wenn Sie einen Cluster mit demdataproc:dataproc.scheduler.job-submission-rate-Clusterattribut erstellen.
Jobstatus ansehen
Informationen zum Aufrufen des Jobstatus und der Jobdetails finden Sie unter Monitoring und Fehlerbehebung für Jobs.