Planmäßiges Anhalten von Clustern

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:

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 false gesetzt 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:

  1. Öffnen Sie die Seite Cluster erstellen.
  2. 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 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 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
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 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
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 in Kombination mit planmäßigem Löschen verwenden

Wenn Sie beim Erstellen oder Aktualisieren eines Clusters sowohl das planmäßige Beenden als auch das planmäßige Löschen von Clustern verwenden, beachten Sie die folgenden Einschränkungen:

  • Der Zeitraum für stop-max-idle muss kürzer oder gleich dem Zeitraum für delete-max-idle oder dem Zeitraum sein, der sich aus delete-max-age oder delete-expiration-time ergibt.

  • 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

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:

  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.