Planmäßiges Anhalten von Clustern

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:

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 false gesetzt 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 Sekunde10 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
Hinweise:
  1. Sie können das Flag stop-max-idle mit dem stop-expiration-time oder stop-max-age Flag in Ihrer Anfrage zum Erstellen oder Aktualisieren des Clusters übergeben. Das erste eintretende Flag führt zum Beenden des Clusters.
  2. Sie können das Flag stop-expiration-time oder das Flag stop-max-age an 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
Hinweise:
  1. Sie können das Flag stop-max-idle mit dem stop-expiration-time oder stop-max-age Flag in Ihrer Anfrage zum Erstellen oder Aktualisieren des Clusters übergeben. Das erste eintretende Flag führt zum Beenden des Clusters.
  2. Sie können das Flag stop-expiration-time oder das Flag stop-max-age an 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-idle Zeitraum muss kürzer oder gleich dem delete-max-idle Zeitraum oder dem Zeitraum sein, der sich aus delete-max-age oder delete-expiration-time ergibt.

  • Die stop-max-age und stop-expiration-time müssen später als delete-max-age bzw. delete-expiration-time liegen.

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:

  1. Der Cluster muss seit dem letzten Start für die in idleStopTtl angegebene Dauer inaktiv gewesen sein.
  2. Der Cluster muss seit dem letzten Zurücksetzen von idleStartTime für die in idleStopTtl angegebene 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.