Um Google Cloud -Gebühren für einen inaktiven Cluster zu vermeiden oder einen Cluster nicht löschen und neu erstellen zu müssen, um Clustergebühren zu vermeiden, verwenden Sie das Feature „Planmäßiges Beenden“ für Managed Service for Apache Spark-Cluster, mit dem alle Cluster-VMs beendet werden. Für beendete VMs fallen keine Gebühren an, für zugehörige Ressourcen wie nichtflüchtige Speicher werden jedoch weiterhin Gebühren berechnet.
Durch das Anhalten 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 den Cluster senden und nicht über das Managed Service for Apache Spark Component Gateway auf optionale Komponenten im Cluster zugreifen. Nachdem Sie einen Cluster beendet haben, können Sie ihn neu starten und die Arbeit fortsetzen.
Der geplante Stopp von Clustern ist für Cluster verfügbar, die mit den Image-Versionen 2.2.42+, 2.1.76+ und 2.0.57+ und höher erstellt wurden.
Features
Sie können Cluster nach einer bestimmten Zeit der Inaktivität, zu einem bestimmten Zeitpunkt oder nach einem bestimmten Zeitraum ab dem Request zur Clustererstellung beenden.
Das geplante Beenden von Clustern wird für Cluster mit sekundären Workern und für auf null skalierte Cluster unterstützt.
Sie können die Konfiguration für das planmäßige Beenden des Clusters aktualisieren oder abbrechen.
Einschränkungen und Überlegungen
- Das geplante Beenden von Clustern wird für Cluster mit lokalen SSDs nicht unterstützt.
- Sie können keine Werte für den geplanten Stopp von Clustern über die Google Cloud Console festlegen.
- Sie können zwar die Konfiguration für das planmäßige Beenden eines Clusters aktualisieren, ein initiierter Stoppvorgang wird jedoch fortgesetzt. Prüfen Sie die Clusterlogs in Cloud Logging, um festzustellen, ob der Stoppvorgang gestartet wurde.
- Wenn Sie einen Stoppzeitplan für einen Cluster aktualisieren, für den bereits eine planmäßige Stoppzeit festgelegt war, wird die Konfiguration für den planmäßigen Stopp entfernt. Wenn Sie den geplanten Stopp wieder aktivieren möchten, geben Sie in Ihrer Aktualisierungsanfrage eine zukünftige Zeit an.
Aktionen, mit denen das planmäßige Beenden von Clustern deaktiviert wird
Während ein Cluster ausgeführt wird, wird das planmäßige Beenden des Clusters durch die folgenden Aktionen deaktiviert, bis die Deaktivierungsaktion rückgängig gemacht wird:
- Entfernen der IAM-Rolle Managed Service for Apache Spark-Dienst-Agent für das Dataproc-Dienst-Agent-Dienstkonto
- Managed Service for Apache Spark API im Clusterprojekt deaktivieren
- Aktivieren von VPC Service Controls, wenn das Dienstkonto des Managed Service for Apache Spark-Dienst-Agents (Identität der Steuerungsebene) nicht innerhalb der Umkreisgrenze liegt
Berechnung der Cluster-Leerlaufzeit
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 das Starten des Clusters wird nicht in die Berechnung der Leerlaufzeit einbezogen.
- Auf dem Cluster werden keine Jobs ausgeführt.
- Der Cluster befindet sich nicht im Status
STOPPED.
Wenn Sie einen Job an den Cluster senden oder einen Cluster beenden, wird die Berechnung der Leerlaufzeit zurückgesetzt.
Die dataproc:dataproc.cluster-ttl.consider-yarn-activity-Clustereigenschaft wirkt sich so auf die Berechnung der Cluster-Leerlaufzeit aus:
- Diese Eigenschaft ist standardmäßig aktiviert (auf
truefestgelegt). - Wenn diese Property aktiviert ist, müssen sowohl YARN- als auch Managed Service for Apache Spark Jobs API-Aktivitäten inaktiv sein, damit die Berechnung der Cluster-Leerlaufzeit gestartet und fortgesetzt werden kann.
- YARN-Aktivitäten umfassen ausstehende und laufende YARN-Anwendungen.
- Die Aktivität der Managed Service for Apache Spark Jobs API umfasst ausstehende und laufende Jobs, die an die Managed Service for Apache Spark Jobs API gesendet wurden.
- Wenn diese Eigenschaft auf
falsefestgelegt ist, beginnt die Berechnung der Leerlaufzeit des Clusters und wird nur fortgesetzt, wenn die Managed Service for Apache Spark Jobs API-Aktivität im Leerlauf ist.
Planmäßiges Beenden von Clustern verwenden
Console
- Öffnen Sie die Seite Cluster erstellen für Managed Service for Apache Spark.
- Wählen Sie den Bereich Cluster anpassen aus.
- Wählen Sie im Abschnitt Geplanter Stopp die Optionen aus, die auf Ihren Cluster angewendet werden sollen.
gcloud-CLI
Sie können geplante Stoppwerte festlegen, wenn Sie einen Cluster mit der Google Cloud CLI oder der Managed Service for Apache Spark API erstellen. Nachdem Sie den Cluster erstellt haben, können Sie ihn aktualisieren, um zuvor festgelegte Werte für das planmäßige Beenden des Clusters zu ändern oder zu löschen.
| Flag | Beschreibung | Feinste Granularität | Mindestwert | Maximalwert |
|---|---|---|---|---|
--stop-max-idle1 |
Gilt für Befehle zum Erstellen und Aktualisieren von Clustern.
Der Zeitraum von dem Moment an, in dem der Cluster in den inaktiven Zustand 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 des Clusters ab, das zuvor mit dem Flag --stop-max-idle festgelegt wurde. |
Nicht zutreffend | Nicht zutreffend | Nicht zutreffend |
--stop-expiration-time2 |
Gilt für Befehle zum Erstellen und Aktualisieren von Clustern. Die Zeit, zu der der Cluster beendet werden soll, im ISO 8601-Datetime-Format. 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 Befehle zum Erstellen und Aktualisieren von Clustern.
Der Zeitraum ab der Übergabe des Requests zur Clustererstellung 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“: 30 Minuten ab jetzt; „1d“: 1 Tag ab jetzt. |
1 Sekunde | 10 Minuten | 14 Tage |
- Sie können das Flag
stop-max-idlemit dem Flagstop-expiration-timeoderstop-max-agein Ihrer Anfrage zum Erstellen oder Aktualisieren des Clusters übergeben. Das erste eintretende Flag führt zum Beenden des Clusters. - Sie können entweder 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 ein Clusterupdate:
Beispiel:
gcloud dataproc clusters update CLUSTER_NAME \ --region=REGION \ --stop-max-idle=DURATION \ --no-stop-max-age \ ... other flags
REST API
Sie können geplante Stoppwerte für einen Cluster erstellen oder aktualisieren, indem Sie die in der folgenden Tabelle aufgeführten Felder und Werte für ClusterLifecycleConfig in der Managed Service for Apache Spark API als Teil einer API-Anfrage cluster.create oder cluster.patch für Managed Service for Apache Spark festlegen.
| Flag | Beschreibung | Feinste Granularität | Mindestwert | Maximalwert |
|---|---|---|---|---|
idleStopTtl1 |
Gilt für Befehle zum Erstellen und Aktualisieren von Clustern.
Der Zeitraum von dem Moment an, in dem der Cluster nach der Erstellung oder Aktualisierung in den inaktiven Zustand wechselt, bis zu dem Moment, in dem der Cluster beendet wird.
Geben Sie eine Dauer in Sekunden mit bis zu neun Nachkommastellen und einem 's' an letzter Stelle an. Beispiel: "3.5s".
Senden Sie eine cluster.patch-Anfrage mit einem leeren Zeitraum, um einen zuvor festgelegten Wert von idleDeleteTtl außer Kraft zu setzen. |
1 Sekunde | 5 Minuten |
14 Tage |
autoStopTime2 |
Gilt für Befehle zum Erstellen und Aktualisieren von Clustern. Die Zeit, zu der der Cluster beendet werden soll. 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 |
Der Zeitraum ab dem Zeitpunkt der Übergabe des Requests zur Erstellung oder Aktualisierung des Clusters bis zu dem Moment, in dem der Cluster beendet wird. 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 dem Flagstop-expiration-timeoderstop-max-agein Ihrer Anfrage zum Erstellen oder Aktualisieren des Clusters übergeben. Das erste eintretende Flag führt zum Beenden des Clusters. - Sie können entweder das Flag
stop-expiration-timeoder das Flagstop-max-agean den Befehl zum Erstellen oder Aktualisieren des Clusters übergeben, aber nicht beide.
Geplantes Beenden mit geplantem Löschen verwenden
Wenn Sie beim Erstellen oder Aktualisieren eines Clusters sowohl den planmäßigen Clusterstopp als auch das planmäßige Löschen von Clustern verwenden, beachten Sie die folgenden Einschränkungen:
Der Zeitraum für
stop-max-idlemuss kürzer oder gleich dem Zeitraum fürdelete-max-idleoder dem Zeitraum sein, der sich ausdelete-max-ageoderdelete-expiration-timeergibt.stop-max-ageundstop-expiration-timemüssen später alsdelete-max-agebzw.delete-expiration-timesein.
Einstellungen zum planmäßigen Beenden von Clustern aufrufen
gcloud-CLI
Mit dem Befehl gcloud dataproc clusters list können Sie bestätigen, dass für einen Cluster das geplante Beenden aktiviert ist.
gcloud dataproc clusters list \ --region=REGION
Beispielausgabe:
... NAME WORKER_COUNT ... SCHEDULED_STOP CLUSTER_ID NUMBER ... enabled ...
Mit dem Befehl gcloud dataproc clusters describe können Sie die Einstellungen für das geplante Beenden von Clustern LifecycleConfig 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. Managed Service for Apache Spark generiert den Wert idleStartTime, die letzte Startzeit für die Inaktivität des Clusters.
Während idleStartTime in Managed Service for Apache Spark auf Grundlage des Endes der Jobaktivität berechnet wird, werden beim geplanten Beenden von Clustern sowohl idleStartTime als auch die letzte Startzeit des Clusters berücksichtigt.
Wenn ein Cluster von einem Nutzer oder von Managed Service for Apache Spark beendet wird, wird die Berechnung der Leerlaufzeit für die Funktion zum geplanten Beenden zurückgesetzt. Das bedeutet, dass der Countdown für einen geplanten Stopp beim nächsten Start des Clusters neu beginnt. Die idleStartTime selbst wird jedoch nicht zurückgesetzt, wenn ein angehaltener Cluster neu gestartet wird. Sie spiegelt weiterhin das letzte Auftreten von Inaktivität vor dem Stopp wider.
Daher müssen zwei Bedingungen erfüllt sein, damit Managed Service for Apache Spark einen Cluster basierend auf der idleStopTtl beendet:
- Der Cluster muss seit dem letzten Start für die Dauer, die durch
idleStopTtlangegeben ist, im Leerlauf gewesen sein. - Der Cluster muss seit dem letzten
idleStartTime-Reset für die vonidleStopTtlangegebene Dauer im Leerlauf gewesen sein.
REST API
Sie können eine clusters.list-Anfrage senden, um zu bestätigen, dass die Funktion zum planmäßigen Stoppen eines Clusters aktiviert ist.