Cluster skalieren

Nachdem Sie einen Cloud Dataproc-Cluster erstellt haben, können Sie den Cluster anpassen ("skalieren"), indem Sie die Anzahl der primären oder sekundären Worker-Knoten im Cluster erhöhen oder verringern. Cloud Dataproc-Cluster können jederzeit skaliert werden, auch wenn Jobs auf dem Cluster ausgeführt werden.

Gründe für die Skalierung eines Cloud Dataproc-Clusters:

  1. Erhöhen der Anzahl vorhandener Worker, um die Ausführung eines Jobs zu beschleunigen
  2. Reduzieren der Anzahl der Worker, um Geld zu sparen. (Beachten Sie beim Reduzieren eines Clusters die ordnungsgemäße Außerbetriebnahme, um den Verlust laufender Aufgaben zu vermeiden.)
  3. Erhöhen der Anzahl vorhandener Knoten, um verfügbaren HDFS-Speicher (Hadoop Distributed Filesystem) zu erweitern

Da Cluster mehrmals skaliert werden können, kann es sinnvoll sein, die Clustergröße einmalig zu erhöhen/verringern und dann zu einem späteren Zeitpunkt zu verringern/erhöhen.

Skalierung verwenden

Es gibt drei Methoden zum Skalieren von Cloud Dataproc-Clustern:

  1. Verwenden des gcloud-Befehlszeilentools im Google Cloud SDK
  2. Bearbeiten der Clusterkonfiguration in der Google Cloud Platform Console
  3. Verwenden der Rest API

Neue Worker, die einem Cluster hinzugefügt wurden, verwenden den gleichen Maschinentyp wie bestehende Worker. Wenn ein Cluster beispielsweise mit Workern erstellt wird, die den Maschinentyp n1-standard-8 verwenden, nutzen die neuen Worker ebenfalls den Maschinentyp n1-standard-8.

Sie können die Anzahl der primären Worker, der sekundären Worker (Worker auf Abruf) oder beider skalieren. Wenn Sie beispielsweise nur die Anzahl der Worker (auf Abruf) skalieren, bleibt die Anzahl der primären Worker unverändert.

gcloud

Um einen Cluster mit gcloud dataproc clusters update zu skalieren, führen Sie den folgenden Befehl aus:
gcloud dataproc clusters update cluster-name \
    [--num-workers and/or --num-preemptible-workers] new-number-of-workers
Dabei ist cluster-name der Name des zu aktualisierenden Clusters und new-number-of-workers die aktualisierte Anzahl der primären und/oder sekundären Worker-Knoten. Wenn Sie beispielsweise einen Cluster namens "dataproc-1" zur Verwendung von fünf Worker-Knoten skalieren möchten, führen Sie den folgenden Befehl aus:
gcloud dataproc clusters update dataproc-1 --num-workers 5
Waiting on operation [operations/projects/project-id/operations/...].
Waiting for cluster update operation...done.
Updated [https://dataproc.googleapis.com/...].
clusterName: my-test-cluster
...
  masterDiskConfiguration:
    bootDiskSizeGb: 500
  masterName: dataproc-1-m
  numWorkers: 5
  ...
  workers:
  - my-test-cluster-w-0
  - my-test-cluster-w-1
  - my-test-cluster-w-2
  - my-test-cluster-w-3
  - my-test-cluster-w-4
...

REST API

Weitere Informationen finden Sie unter cluster.patch.

Beispiel

PATCH /v1/projects/project-id/regions/global/clusters/example-cluster?updateMask=config.worker_config.num_instances,config.secondary_worker_config.num_instances
{
  "config": {
    "workerConfig": {
      "numInstances": 4
    },
    "secondaryWorkerConfig": {
      "numInstances": 2
    }
  },
  "labels": null
}

Konsole

Wenn Sie einen Cluster nach dessen Erstellung skalieren möchten, wechseln Sie zur Seite Cluster in der GCP Console und öffnen die Seite Clusterdetails für den jeweiligen Cluster. Klicken Sie dann auf dem Tab Konfiguration auf die Schaltfläche Bearbeiten.
Geben Sie einen neuen Wert für die Anzahl der Worker-Knoten und/oder Worker-Knoten auf Abruf ein (im folgenden Screenshot auf "5" bzw. "2" aktualisiert).
Klicken Sie auf Speichern, um den Cluster zu aktualisieren.

Ordnungsgemäße Außerbetriebnahme

Wenn Sie einen Cluster herunterskalieren, werden laufende Aufgaben möglicherweise vor Abschluss beendet. Wenn Sie Cloud Dataproc Version 1.2 oder höher verwenden, können Sie die ordnungsgemäße Außerbetriebnahme verwenden. Diese Funktion beinhaltet die ordnungsgemäße YARN-Außerbetriebnahme, um laufende Aufgaben auf einem Worker abzuschließen, bevor dieser aus dem Cloud Dataproc-Cluster entfernt wird.

Ordnungsgemäße Außerbetriebnahme und sekundäre Worker

Die sekundäre Worker-Gruppe (Worker-Gruppe auf Abruf) stellt Worker weiter bereit oder löscht sie, um die erwartete Größe zu erreichen, nachdem ein Cluster-Skalierungsvorgang als abgeschlossen markiert wurde. Wenn Sie versuchen, einen sekundären Worker ordnungsgemäß außer Betrieb zu nehmen, erhalten Sie möglicherweise eine Fehlermeldung wie die folgende:

"Die sekundäre Worker-Gruppe kann nicht außerhalb von Cloud Dataproc geändert werden. Wenn Sie diesen Cluster vor Kurzem erstellt oder aktualisiert haben, warten Sie einige Minuten, bevor Sie ihn ordnungsgemäß außer Betrieb nehmen, damit alle sekundären Instanzen hinzugefügt bzw. aus dem Cluster entfernt werden können. Erwartete Größe der sekundären Worker-Gruppe: x, tatsächliche Größe: y."

Warten Sie bei dieser Fehlermeldung einige Minuten und wiederholen Sie dann die Anfrage zur ordnungsgemäßen Außerbetriebnahme.

Beachten Sie außerdem Folgendes:

  • Sie können präemptive Worker jederzeit zwangsweise außer Betrieb nehmen.
  • Primäre Worker werden immer ordnungsgemäß außer Betrieb genommen.

Ordnungsgemäße Außerbetriebnahme anwenden

Die ordnungsgemäße Außerbetriebnahme von Cloud Dataproc beinhaltet auch die ordnungsgemäße YARN-Außerbetriebnahme. Diese beendet die Ausführung eines Workers, bevor dieser aus dem Cloud Dataproc-Cluster entfernt wird. Die ordnungsgemäße Außerbetriebnahme ist standardmäßig deaktiviert. Sie kann aktiviert werden, indem Sie einen Zeitüberschreitungswert festlegen, wenn Sie Ihren Cluster aktualisieren, um einen oder mehrere Worker aus dem Cluster zu entfernen.

gcloud

Wenn Sie einen Cluster aktualisieren, um einen oder mehrere Worker zu entfernen, verwenden Sie den Befehl gcloud dataproc clusters update mit dem Flag --graceful-decommission-timeout. Die Zeitüberschreitungswerte (String) können den Wert "0s" (Standardeinstellung; erzwungene Außerbetriebnahme, nicht ordnungsgemäß) oder eine positive Dauer relativ zum aktuellen Zeitpunkt (z. B. "3s") haben. Die maximale Dauer beträgt 1 Tag.
gcloud dataproc clusters update cluster-name \
    --graceful-decommission-timeout="timeout-value" \
    [--num-workers and/or --num-preemptible-workers]=decreased-number-of-workers \
    ... other args ...

REST API

Weitere Informationen finden Sie unter clusters.patch.gracefulDecommissionTimeout. Die Zeitüberschreitungswerte (String) können den Wert "0" (Standardeinstellung; erzwungene Außerbetriebnahme, nicht ordnungsgemäß) oder eine Dauer in Sekunden (z. B. "3s") haben. Die maximale Dauer beträgt 1 Tag.

Konsole

Wenn Sie für einen Cluster nach dessen Erstellung die ordnungsgemäße Außerbetriebnahme auswählen möchten, wechseln Sie zur Seite Cluster der GCP Console und öffnen die Seite Clusterdetails für den jeweiligen Cluster. Klicken Sie dann auf dem Tab Konfiguration auf die Schaltfläche Bearbeiten.
Klicken Sie im Abschnitt Ordnungsgemäße Außerbetriebnahme das Kästchen "Ordnungsgemäße Außerbetriebnahme verwenden" an und wählen Sie ein Zeitlimit aus.
Klicken Sie auf Speichern, um den Cluster zu aktualisieren.
Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Cloud Dataproc-Dokumentation