Um Gebühren für einen inaktiven Cluster zu vermeiden, verwenden Sie beim Erstellen eines Clusters die Funktion zum planmäßigen Löschen von Clustern im Managed Service for Apache Spark.Google CloudMit dieser Funktion können Sie einen Cluster löschen, wenn eines der folgenden Ereignisse eintritt:
- Nach einem bestimmten Zeitraum, in dem der Cluster inaktiv war
- Zu einem bestimmten zukünftigen Zeitpunkt
- nach einem bestimmten Zeitraum, der ab dem Zeitpunkt der Einreichung der Anfrage zur Clustererstellung beginnt
Aktionen, die das planmäßige Löschen deaktivieren
Während ein Cluster ausgeführt wird, deaktivieren die folgenden Aktionen das planmäßige Löschen, bis die deaktivierende Aktion rückgängig gemacht wird:
- Entfernen der IAM-Rolle „Managed Service for Apache Spark Service Agent“ für das Dienstkonto des Dataproc-Dienst-Agents
- Deaktivieren der Dataproc API im Clusterprojekt
- Aktivieren des Compute Engine-VM-Löschschutzes auf einer VM des Clusters, der für das Löschen geplant ist
- Aktivieren von VPC Service Controls, wenn sich das Dienstkonto des Managed Service for Apache Spark Service Agent (Identität der Steuerungsebene) nicht innerhalb der Umkreisgrenze befindet
Inaktivitätszeit des Clusters berechnen
Sie können das planmäßige Löschen verwenden, um einen Cluster nach einer bestimmten Inaktivitätszeit zu löschen. Die Inaktivitätszeit wird berechnet, nachdem der Cluster erstellt und die Clusterbereitstellung abgeschlossen wurde. Die Berechnung der Inaktivitätszeit beginnt, wenn auf einem Cluster keine Jobs ausgeführt werden.
Die dataproc:dataproc.cluster-ttl.consider-yarn-activity Cluster
Property
wirkt sich wie folgt auf die Berechnung der Inaktivitätszeit des Clusters aus:
- Diese Property ist standardmäßig aktiviert (
true). - Wenn diese Property aktiviert ist, müssen sowohl YARN- als auch Dataproc Jobs API-Aktivität inaktiv sein, damit die Berechnung der Inaktivitätszeit des Clusters gestartet und fortgesetzt werden kann.
- Die YARN-Aktivität umfasst ausstehende und ausgeführte YARN-Anwendungen.
- Die Dataproc Jobs API-Aktivität umfasst ausstehende und ausgeführte Jobs, die an die Dataproc Jobs API gesendet wurden.
- Wenn diese Property auf
falsegesetzt ist, wird die Berechnung der Inaktivitätszeit des Clusters nur gestartet und fortgesetzt, wenn die Dataproc Jobs API-Aktivität inaktiv ist.
Die Property dataproc:dataproc.cluster-ttl.consider-yarn-activity gilt für Cluster, die mit Image-Versionen erstellt wurden, die am oder nach dem 1.4.64, 1.5.39, 2.0.13 veröffentlicht wurden. Bei Clustern, die mit früheren Image-Versionen erstellt wurden, wird bei der Berechnung der Inaktivitätszeit des Clusters nur die Dataproc Jobs API-Aktivität berücksichtigt.
Planmäßiges Löschen von Clustern verwenden
Sie können Werte für das planmäßige Löschen festlegen, wenn Sie einen Cluster mit der Google Cloud CLI, der Dataproc API oder der Google Cloud Console erstellen. Nachdem Sie den Cluster erstellt haben, können Sie ihn aktualisieren, um zuvor festgelegte Werte für das planmäßige Löschen zu ändern oder zu löschen.
Google Cloud Console
- Öffnen Sie die Seite Cluster erstellen.
- Wählen Sie unter Einstellungen zur Kostenkontrolle definieren die Option Optionale Aufbewahrungsrichtlinie zur Kostenkontrolle festlegen aus, und wählen Sie dann die Einstellungen für das planmäßige Löschen (oder das planmäßige Beenden) aus.
gcloud CLI
Sie können Werte für das planmäßige Löschen für einen Cluster erstellen oder aktualisieren, indem Sie die
in der folgenden Tabelle aufgeführten Flags und Werte an die
gcloud dataproc clusters create
oder gcloud dataproc clusters update
Befehle übergeben.
| gcloud CLI-Flag | Beschreibung | Granularität des Werts | Mindestwert | Höchstwert |
|---|---|---|---|---|
--delete-max-idle1 |
Gilt für die Befehle zum Erstellen und Aktualisieren von Clustern.
Die Dauer ab dem Zeitpunkt, zu dem der Cluster inaktiv wird, nachdem er
erstellt oder aktualisiert wurde und sich in einem einsatzbereiten Zustand befindet, bis zu dem
Moment, in dem der Löschvorgang des Clusters beginnt. Geben Sie die Dauer im
IntegerUnit Format an. Die Einheit kann „s, m, h, d“
(Sekunden, Minuten, Stunden, Tage) sein. Beispiel: „30m“: 30 Minuten ab dem Zeitpunkt
zu dem der Cluster inaktiv wird. |
1 Sekunde | 5 Minuten | 14 Tage |
--no-delete-max-idle |
Gilt nur für den Befehl zum Aktualisieren von Clustern.
Bricht das Löschen des Clusters durch die vorherige delete-max-idle
Einstellung des Flags ab. |
Nicht zutreffend | Nicht zutreffend | Nicht zutreffend |
--delete-expiration-time2 |
Gilt für die Befehle zum Erstellen und Aktualisieren von Clustern. Die Zeit zum Starten des Löschvorgangs des Clusters 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 |
--delete-max-age2 |
Gilt für die Befehle zum Erstellen und Aktualisieren von Clustern.
Der Zeitraum ab der Übergabe der Anfrage zur Erstellung des Clusters bis zu
dem Moment, in dem der Löschvorgang des Clusters beginnt. Geben Sie die Dauer im
IntegerUnit Format an. Die Einheit kann „s, m, h, d“
(Sekunden, Minuten, Stunden, Tage) sein. Beispiele: „30m“: 30 Minuten ab jetzt;
„1d“: 1 Tag ab jetzt. |
1 Sekunde | 10 Minuten | 14 Tage |
--no-delete-max-age |
Gilt nur für den Befehl zum Aktualisieren von Clustern.
Bricht das automatische Löschen des Clusters durch die vorherige
delete-max-age oder delete-expiration-time Flag
Einstellung ab. |
Nicht zutreffend | Nicht zutreffend | Nicht zutreffend |
- Sie können das Flag
delete-max-idlemit dem Flagdelete-expiration-timeoderdelete-max-agein Ihrer Anfrage zum Erstellen oder Aktualisieren von Clustern übergeben. Die erste Bedingung, die erfüllt wird, löscht den Cluster. - Sie können entweder das Flag
delete-expiration-timeoder das Flagdelete-max-agean den Befehl zum Erstellen oder Aktualisieren von Clustern übergeben, aber nicht beide.
Beispiel für die Clustererstellung:
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --delete-expiration-time=TIME \ ... other flags ...
Beispiel für die Clusteraktualisierung:
gcloud dataproc clusters update CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --no-delete-max-age \ ... other flags
REST API
Sie können Werte für das planmäßige Löschen für einen Cluster erstellen oder aktualisieren, indem Sie die in der folgenden Tabelle aufgeführten Dataproc API ClusterLifecycleConfig -Felder und -Werte als Teil einer API-Anfrage zum Erstellen oder Aktualisieren von Clustern im Managed Service for Apache Spark cluster.create oder cluster.patch festlegen.
| API-Feld | Beschreibung | Granularität des Werts | Mindestwert | Höchstwert |
|---|---|---|---|---|
idleDeleteTtl1 |
Gilt für die Befehle zum Erstellen und Aktualisieren von Clustern.
Die Dauer ab dem Zeitpunkt, zu dem der Cluster inaktiv wird, nachdem er
erstellt oder aktualisiert wurde und sich in einem einsatzbereiten Zustand befindet, bis zu dem
Moment, in dem der Löschvorgang des Clusters beginnt. Wenn Sie einen Cluster mit einem neuen Wert aktualisieren, muss der neue Wert größer als der zuvor festgelegte
Wert sein.
Geben Sie eine Dauer in Sekunden mit bis zu neun Nachkommastellen und einem „s“ an letzter Stelle an.
Beispiel: „3.5s“.
Senden Sie eine leere Dauer, um einen zuvor festgelegten Wert von idleDeleteTtl außer Kraft zu setzen. |
1 Sekunde | 5 Minuten | 14 Tage |
autoDeleteTime2 |
Gilt für die Befehle zum Erstellen und Aktualisieren von Clustern.
Die Zeit, zu der der Löschvorgang des Clusters startet. Wenn Sie einen Cluster mit einer neuen Zeit aktualisieren,
muss die neue Zeit nach der zuvor festgelegten Zeit liegen. Wenn Sie einen Cluster aktualisieren und für autoDeleteTime ein leerer Wert festgelegt wird, wird das
automatische Löschen abgebrochen.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 |
autoDeleteTtl2 |
Der Zeitraum ab dem Zeitpunkt der Übergabe des Requests zur Erstellung oder Aktualisierung des Clusters
bis zu dem Moment, in dem der Löschvorgang des Clusters beginnt. Wenn Sie einen Cluster aktualisieren,
muss die neue Zeit für das planmäßige Löschen (Zeitpunkt der Aktualisierungsanfrage plus die
neue Dauer) nach der zuvor
festgelegten Zeit für das Löschen des Clusters liegen. Senden Sie einen leeren Wert
zum Abbrechen eines zuvor festgelegten Werts autoDeleteTtl.
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 | 14 Tage |
- Sie können sowohl
idleDeleteTtlals auch entwederautoDeleteTimeoderautoDeleteTtlin Ihrer Anfrage zum Erstellen oder Aktualisieren von Clustern festlegen oder aktualisieren. Die erste Bedingung, die erfüllt wird, löscht den Cluster. - Sie können entweder
autoDeleteTimeoderautoDeleteTtlin Ihrer Anfrage festlegen oder aktualisieren, aber nicht beide.
Einstellungen zum planmäßigen Löschen von Clustern aufrufen
Google Cloud Console
- Sie können die Einstellungen zum planmäßigen Löschen von Clustern aufrufen, indem Sie den Clusternamen in der Console auf der Seite „Managed Service for Apache Spark Cluster“ auswählen. Google Cloud
- Wählen Sie auf der Cluster-Detailseite den Tab Konfiguration aus. Rufen Sie die Liste der Clusterkonfigurationen auf, um die Einstellungen zum planmäßigen Löschen aufzurufen.
gcloud CLI
Sie können den Befehl gcloud dataproc clusters list verwenden, um zu bestätigen, dass die Funktion zum planmäßigen Löschen eines Clusters aktiviert ist.
gcloud dataproc clusters list \ --region=REGION
... NAME WORKER_COUNT ... SCHEDULED_DELETE CLUSTER_ID NUMBER ... enabled ...
Mit dem Befehl gcloud dataproc clusters describe können Sie die Einstellungen zum planmäßigen Löschen von LifecycleConfig des Clusters prüfen.
gcloud dataproc clusters describe CLUSTER_NAME \ --region=REGION
... lifecycleConfig: autoDeleteTime: '2018-11-28T19:33:48.146Z' idleDeleteTtl: 1800s idleStartTime: '2018-11-28T18:33:48.146Z' ...
autoDeleteTime und idleDeleteTtl sind die für den Cluster festgelegten Konfigurationswerte für das planmäßige Löschen.
Managed Service for Apache Spark generiert den Wert idleStartTime, die letzte Startzeit für die Inaktivität des Clusters. Managed Service for Apache Spark löscht den
Cluster, wenn der Cluster bei den Werten idleStartTime +
idleDeleteTtl inaktiv bleibt.
REST API
Sie können eine clusters.list -Anfrage senden, um zu bestätigen, dass die Funktion zum planmäßigen Löschen eines Clusters aktiviert ist.