Damit für inaktive Cluster keine Kosten anfallen oder Sie Cluster nicht löschen und neu erstellen müssen, um Cluster kosten zu vermeiden, verwenden Sie die Funktion für das planmäßige Beenden von Managed Service for Apache Spark-Clustern, mit der alle Cluster-VMs beendet werden.Google Cloud Für beendete VMs werden keine Kosten in Rechnung gestellt, für zugehörige Ressourcen wie nichtflüchtige Speicher fallen jedoch weiterhin Kosten 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 Managed Service for Apache Spark Component Gatewayauf 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+ und höher erstellt wurden.
Features
Sie können Cluster nach einem bestimmten Zeitraum der Inaktivität, zu einem bestimmten Zeitpunkt oder nach einem bestimmten Zeitraum ab der Anfrage zur Clustererstellung beenden.
Das planmäßige Beenden von Clustern wird für Cluster mit sekundären Workern und auf null skalierten Clustern unterstützt.
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 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 „Managed Service for Apache Spark-Dienst-Agent“ für das Dienstkonto des Dataproc-Dienst-Agents
- Deaktivieren der Managed Service for Apache Spark API im Clusterprojekt
- Aktivieren von VPC Service Controls, wenn sich das Managed Service for Apache Spark Dienst-Agent-Dienstkonto (Identität der Steuerungsebene) nicht innerhalb der Umkreisgrenze befindet
Berechnung der Cluster-Inaktivitätszeit
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.
Die dataproc:dataproc.cluster-ttl.consider-yarn-activity
Clustereigenschaft
wirkt sich wie folgt auf die Berechnung der Cluster-Inaktivitätszeit aus:
- Diese Eigenschaft ist standardmäßig aktiviert (
true). - Wenn diese Eigenschaft aktiviert ist, müssen sowohl YARN- als auch Managed Service for Apache Spark Jobs API-Aktivitäten inaktiv sein, damit die Berechnung der Cluster-Inaktivitätszeit gestartet und fortgesetzt werden kann.
- Zu den YARN-Aktivitäten gehören ausstehende und laufende YARN-Anwendungen.
- Zu den Managed Service for Apache Spark Jobs API-Aktivitäten gehören ausstehende und laufende Jobs, die an die Managed Service for Apache Spark Jobs API gesendet wurden.
- Wenn diese Eigenschaft auf
falsegesetzt ist, wird die Berechnung der Cluster-Inaktivitätszeit nur gestartet und fortgesetzt, wenn die Managed Service for Apache Spark Jobs API-Aktivität inaktiv ist.
Planmäßiges Beenden von Clustern verwenden
Google Cloud Console
Sie können Werte für das planmäßige Beenden festlegen, wenn Sie einen Cluster über die Google Cloud Console erstellen. Gehen Sie dazu so vor:
- Öffnen Sie die Seite Cluster erstellen.
- Wählen Sie unter Einstellungen zur Kostenkontrolle definieren die Option Legen Sie eine optionale Aufbewahrungsrichtlinie zur Kostenkontrolle fest, aus und wählen Sie dann die Einstellungen für das Beenden (oder Löschen) des Clusters aus.
gcloud CLI
Sie können Werte für das planmäßige Beenden festlegen, wenn Sie einen Cluster über die Google Cloud CLI oder die 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 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 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 die Befehle zum Erstellen und Aktualisieren von Clustern. Die Zeit, zu der der Löschvorgang des Clusters beginnt, in 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 die Befehle zum Erstellen und Aktualisieren von Clustern.
Die Dauer vom Moment an, in dem die Anfrage zur Clustererstellung gesendet wird
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 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 für einen Cluster erstellen oder aktualisieren, indem Sie die in der folgenden Tabelle aufgeführten Managed Service for Apache Spark API ClusterLifecycleConfig -Felder und -Werte als Teil einer API-Anfrage vom Typ Managed Service for Apache Spark cluster.create oder cluster.patch festlegen.
| Flag | Beschreibung | Feinste Granularität | Mindestwert | Maximalwert |
|---|---|---|---|---|
idleStopTtl1 |
Gilt für die Befehle zum Erstellen und Aktualisieren von Clustern.
Die Dauer vom 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 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 Löschvorgang 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 vom Moment an, in dem die Anfrage zur Clustererstellung oder -aktualisierung gesendet wird, 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 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 in Kombination mit planmäßigem Löschen verwenden
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-timeliegen.
Einstellungen zum planmäßigen Beenden von Clustern aufrufen
Google Cloud Console
- Sie können die Einstellungen für das planmäßige Beenden von Clustern aufrufen, indem Sie auf der Seite „Managed Service for Apache Spark Cluster“ in der Google Cloud Console den Clusternamen auswählen.
- Wählen Sie auf der Detailseite des Clusters den Tab Konfiguration aus. Rufen Sie die Liste der Clusterkonfigurationen auf , um die Einstellungen für das planmäßige Beenden anzuzeigen.
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 Befehl gcloud dataproc clusters describe 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. Managed Service for Apache Spark generiert den Wert idleStartTime, die letzte Startzeit für die Inaktivität des Clusters.
Während Managed Service for Apache Spark idleStartTime basierend auf dem Ende der Jobaktivität berechnet, werden beim planmäßigen Beenden von Clustern sowohl idleStartTime als auch die letzte Startzeit des Clusters berücksichtigt.
Wenn ein Cluster entweder von einem Nutzer oder von Managed Service for Apache Spark 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 die letzte Jobinaktivität vor dem Beenden wider.
Damit Managed Service for Apache Spark einen Cluster basierend auf idleStopTtl beenden kann, müssen daher zwei Bedingungen erfüllt sein:
- 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.