Um Gebühren für einen inaktiven Cluster zu vermeiden oder einen Cluster nicht löschen und neu erstellen zu müssen, um Cluster Gebühren zu vermeiden, verwenden Sie die Dataproc-Funktion zum planmäßigen Beenden von Clustern, mit der alle Cluster-VMs beendet werden.Google Cloud Für beendete VMs werden keine Gebühren erhoben, für zugehörige Ressourcen wie nichtflüchtige Speicher fallen jedoch weiterhin Gebühren an.
Durch das Beenden eines Clusters werden alle Cluster-VMs beendet und alle laufenden Jobs schlagen fehl. Wenn ein Cluster beendet wird, können Sie ihn nicht aktualisieren, keine Jobs an ihn senden und nicht über das Dataproc-Komponentengateway auf optionale Komponenten im Cluster zugreifen. Nachdem Sie einen Cluster beendet haben, können Sie ihn neu starten und die Arbeit fortsetzen.
Das planmäßige Beenden von Clustern ist für Cluster verfügbar, die mit den Image-Versionen 2.2.42+, 2.1.76+ und 2.0.57+ sowie späteren Image-Versionen erstellt wurden.
Funktionen
Sie können Cluster nach einem bestimmten Inaktivitätszeitraum beenden, zu einem bestimmten Zeitpunkt oder nach einem bestimmten Zeitraum ab der Anfrage zur Cluster erstellung.
Das planmäßige Beenden von Clustern unterstützt Cluster mit sekundären Workern und Cluster mit null Knoten.
Sie können die Konfiguration für das planmäßige Beenden von Clustern aktualisieren oder abbrechen.
Einschränkungen und Überlegungen
- Das planmäßige Beenden von Clustern wird für Cluster mit lokalen SSDs nicht unterstützt.
- Sie können keine Werte für das planmäßige Beenden von Clustern über die Google Cloud Console festlegen.
- Sie können zwar die Konfiguration für das planmäßige Beenden von Clustern aktualisieren, ein initiierter Beendigungsvorgang wird jedoch fortgesetzt. Ob der Beendigungsvorgang gestartet wurde, können Sie in den Clusterlogs in Cloud Logging prüfen.
- Wenn Sie einen Beendigungszeitplan für einen Cluster aktualisieren, dessen planmäßige Beendigungszeit bereits verstrichen ist, wird die Konfiguration für das planmäßige Beenden entfernt. Wenn Sie das planmäßige Beenden wieder aktivieren möchten, geben Sie in Ihrer Aktualisierungsanfrage eine zukünftige Zeit an.
Aktionen, die das planmäßige Beenden von Clustern deaktivieren
Während ein Cluster ausgeführt wird, deaktivieren die folgenden Aktionen das planmäßige Beenden von Clustern bis die deaktivierende Aktion rückgängig gemacht wird:
- Entfernen der IAM Rolle „Dataproc-Dienst-Agent“ für das Dienstkonto des Dataproc-Dienst-Agents
- Deaktivieren der Dataproc API im Clusterprojekt
- Aktivieren von VPC Service Controls, wenn sich das Dataproc Dienstkonto des Dienst-Agents (Identität der Steuerungsebene) nicht innerhalb der Umkreisgrenze befindet
Berechnung der Inaktivitätszeit des Clusters
Damit ein Cluster als inaktiv gilt, müssen die folgenden Bedingungen erfüllt sein:
- Die Clustererstellung ist abgeschlossen. Die Zeit für die Clusterbereitstellung und den Clusterstart wird bei der Berechnung der Inaktivitätszeit nicht berücksichtigt.
- Es werden keine Jobs im Cluster ausgeführt.
- Der Cluster hat nicht den Status
STOPPED.
Wenn Sie einen Job an den Cluster senden oder einen Cluster beenden, wird die Berechnung der Inaktivitätszeit zurückgesetzt.
Das dataproc:dataproc.cluster-ttl.consider-yarn-activity
Clusterattribut
wirkt sich wie folgt auf die Berechnung der Inaktivitätszeit des Clusters aus:
- Diese Eigenschaft ist standardmäßig aktiviert (
true). - Wenn diese Eigenschaft aktiviert ist, müssen sowohl YARN als auch die Dataproc Jobs API
inaktiv sein, damit die Berechnung der Inaktivitätszeit des Clusters
gestartet und fortgesetzt werden kann.
- Die YARN-Aktivität umfasst ausstehende und laufende YARN-Anwendungen.
- Die Dataproc Jobs API-Aktivität umfasst ausstehende und laufende Jobs , die an die Dataproc Jobs API gesendet wurden.
- Wenn diese Eigenschaft auf
falsegesetzt ist, wird die Berechnung der Inaktivitätszeit des Clusters nur gestartet und fortgesetzt, wenn die Dataproc Jobs API inaktiv ist.
Planmäßiges Beenden von Clustern verwenden
gcloud-CLI
Sie können Werte für das planmäßige Beenden festlegen, wenn Sie einen Cluster mit der Google Cloud CLI oder der Dataproc API erstellen. Nachdem Sie den Cluster erstellt haben, können Sie ihn aktualisieren, um die zuvor festgelegten Werte für das planmäßige Beenden von Clustern zu ändern oder zu löschen.
| Flag | Beschreibung | Feinste Granularität | Mindestwert | Maximalwert |
|---|---|---|---|---|
--stop-max-idle1 |
Gilt für die Befehle zum Erstellen und Aktualisieren von Clustern.
Die Dauer vom Moment, in dem der Cluster in den Ruhezustand wechselt
(nach der Erstellung oder dem Start), bis zu dem Moment, in dem der Cluster beendet wird.
Geben Sie die Dauer im Format IntegerUnit an, wobei die Einheit
„s, m, h, d“ (Sekunden, Minuten, Stunden, Tage) sein kann. Beispiele:
„30m“ oder „1d“ (30 Minuten oder 1 Tag ab dem Zeitpunkt, zu dem der Cluster inaktiv wird) |
1 Sekunde | 5 Minuten | 14 Tage |
--no-stop-max-idle |
Gilt nur für den Befehl zum Aktualisieren von Clustern.
Bricht das planmäßige Beenden von Clustern ab, das zuvor mit dem Flag
--stop-max-idle festgelegt wurde. |
Nicht zutreffend | Nicht zutreffend | Nicht zutreffend |
--stop-expiration-time2 |
Gilt für die Befehle zum Erstellen und Aktualisieren von Clustern. Die Zeit, zu der der Beendigungsvorgang des Clusters in ISO 8601-Datetime-Format beginnt. Mit dem Zeitstempel-Generator können Sie Datum/Uhrzeit mühelos im richtigen Format generieren. „2017-08-22T13:31:48-08:00“ gibt beispielsweise die Ablaufzeit 13:21:48 in der Zeitzone UTC -8:00 an. | 1 Sekunde | 10 Minuten ab der aktuellen Uhrzeit | 14 Tage ab der aktuellen Uhrzeit |
--stop-max-age2 |
Gilt für die Befehle zum Erstellen und Aktualisieren von Clustern.
Die Dauer ab der Übergabe der Anfrage zur Erstellung des Clusters
bis zu dem Moment, in dem der Beendigungsvorgang des Clusters beginnt. Geben Sie die Dauer
im Format IntegerUnit an, wobei die Einheit „s, m, h, d“
(Sekunden, Minuten, Stunden, Tage) sein kann. Beispiele: "30m": 30 Minuten ab jetzt;
"1d": 1 Tag ab jetzt. |
1 Sekunde | 10 Minuten | 14 Tage |
- Sie können das Flag
stop-max-idlemit demstop-expiration-timeoderstop-max-ageFlag in Ihrer Anfrage zum Erstellen oder Aktualisieren des Clusters übergeben. Das erste eintretende Flag führt zum Beenden des Clusters. - Sie können das Flag
stop-expiration-timeoder das Flagstop-max-agean den Befehl zum Erstellen oder Aktualisieren des Clusters übergeben, aber nicht beide.
Beispiel für die Clustererstellung:
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --stop-max-idle=DURATION \ --stop-expiration-time=TIME \ ... other flags ...
Beispiel für die Clusteraktualisierung:
Beispiel:
gcloud dataproc clusters update CLUSTER_NAME \ --region=REGION \ --stop-max-idle=DURATION \ --no-stop-max-age \ ... other flags
REST API
Sie können Werte für das planmäßige Beenden eines Clusters erstellen oder aktualisieren, indem Sie die in der folgenden Tabelle aufgeführten Dataproc API-ClusterLifecycleConfig -Felder und ‑Werte als Teil einer Dataproc cluster.create - oder cluster.patch -API-Anfrage festlegen.
| Flag | Beschreibung | Feinste Granularität | Mindestwert | Maximalwert |
|---|---|---|---|---|
idleStopTtl1 |
Gilt für die Befehle zum Erstellen und Aktualisieren von Clustern.
Die Dauer vom Moment, in dem der Cluster nach der Erstellung oder Aktualisierung in den Ruhezustand wechselt
bis zu dem Moment, in dem der Cluster
beendet wird.
Geben Sie eine Dauer in Sekunden mit bis zu neun Nachkommastellen an,
die mit „s“ endet. Beispiel: „3.5s“
Senden Sie eine cluster.patch-Anfrage mit einem
leeren Zeitraum, um einen zuvor festgelegten idleDeleteTtl
Wert außer Kraft zu setzen. |
1 Sekunde | 5 Minuten |
14 Tage |
autoStopTime2 |
Gilt für die Befehle zum Erstellen und Aktualisieren von Clustern. Die Zeit, zu der der Beendigungsvorgang des Clusters beginnt. Geben Sie einen Zeitstempel im Format RFC 3339 UTC „Zulu“ in Nanosekunden an. Beispiel: „2014-10-02T15:01:23.045123456Z“. | 1 Sekunde | 10 Minuten ab der aktuellen Uhrzeit | 14 Tage ab der aktuellen Uhrzeit |
autoStopTtl2 |
Die Dauer ab der Übergabe der Anfrage zur Erstellung oder Aktualisierung des Clusters bis zu dem Moment, in dem der Beendigungsvorgangs des Clusters beginnt. Geben Sie eine Dauer in Sekunden mit bis zu neun Nachkommastellen und einem „s“ an letzter Stelle an. Beispiel: „3.5s“ | 1 Sekunde | 10 Minuten. Senden Sie eine cluster.patch Anfrage mit einem leeren
Zeitraum, um einen zuvor festgelegten Wert von autoStopTtl außer Kraft zu setzen. |
14 Tage |
- Sie können das Flag
stop-max-idlemit demstop-expiration-timeoderstop-max-ageFlag in Ihrer Anfrage zum Erstellen oder Aktualisieren des Clusters übergeben. Das erste eintretende Flag führt zum Beenden des Clusters. - Sie können das Flag
stop-expiration-timeoder das Flagstop-max-agean den Befehl zum Erstellen oder Aktualisieren des Clusters übergeben, aber nicht beide.
Planmäßiges Beenden mit planmäßigem Löschen verwenden
Wenn Sie sowohl das planmäßige Beenden als auch das planmäßige Löschen von Clustern verwenden, beachten Sie beim Erstellen oder Aktualisieren eines Clusters die folgenden Einschränkungen:
Der
stop-max-idleZeitraum muss kürzer oder gleich demdelete-max-idleZeitraum oder dem Zeitraum sein, der sich ausdelete-max-ageoderdelete-expiration-timeergibt.Die
stop-max-ageundstop-expiration-timemüssen später alsdelete-max-agebzw.delete-expiration-timeliegen.
Einstellungen zum planmäßigen Beenden von Clustern aufrufen
gcloud-CLI
Mit dem gcloud dataproc clusters list Befehl können Sie
bestätigen, dass das planmäßige Beenden für einen Cluster aktiviert ist.
gcloud dataproc clusters list \ --region=REGION
Beispielausgabe:
... NAME WORKER_COUNT ... SCHEDULED_STOP CLUSTER_ID NUMBER ... enabled ...
Mit dem gcloud dataproc clusters describe Befehl können Sie die Einstellungen für das planmäßige Beenden von LifecycleConfig des Clusters prüfen.
gcloud dataproc clusters describe CLUSTER_NAME \ --region=REGION
Beispielausgabe:
... lifecycleConfig: autoStopTime: '2018-11-28T19:33:48.146Z' idleStopTtl: 1800s idleStartTime: '2018-11-28T18:33:48.146Z' ...
Die Werte autoStopTime und idleStopTtl
werden vom Nutzer festgelegt. Dataproc generiert den
idleStartTime Wert, die letzte Startzeit für die Inaktivität des Clusters.
Während Dataproc idleStartTime basierend auf
dem Ende der Jobaktivität berechnet, berücksichtigt der Mechanismus für das planmäßige Beenden von Clustern
sowohl idleStartTime als auch die letzte Startzeit des Clusters.
Wenn ein Cluster entweder von einem Nutzer oder von Dataproc beendet wird,
wird die Berechnung der Inaktivitätszeit für das planmäßige Beenden zurückgesetzt. Das bedeutet, dass der
Countdown für das planmäßige Beenden beim nächsten Start des Clusters neu beginnt. Der Wert idleStartTime wird jedoch nicht zurückgesetzt, wenn ein beendeter Cluster neu gestartet wird. Er spiegelt weiterhin das letzte Auftreten von Jobinaktivität vor
dem Beenden wider.
Daher müssen zwei Bedingungen erfüllt sein, damit Dataproc
einen Cluster basierend auf dem idleStopTtl beendet:
- Der Cluster muss seit dem letzten Start für die in
idleStopTtlangegebene Dauer inaktiv gewesen sein. - Der Cluster muss seit dem letzten Zurücksetzen von
idleStartTimefür die inidleStopTtlangegebene Dauer inaktiv gewesen sein.
REST API
Sie können eine
clusters.list
Anfrage senden, um zu bestätigen, dass das planmäßige Beenden für einen Cluster aktiviert ist.