Flexible Dataproc-VMs

Flexible VMs sind eine Dataproc-Funktion, mit der Sie priorisierte Listen von VM-Typen für Dataproc sekundäre Worker, wenn Sie Dataproc-Cluster erstellen

Vorteile flexibler VMs

Wenn ein VM-Typ beim Senden bisher nicht verfügbar war Eine Anfrage zur Clustererstellung ist fehlgeschlagen und Sie mussten ein Update durchführen. Ihre Anfrage, Ihr Skript oder Ihren Code ein, um VM-Typ. Dieses Die erneute Anfrage kann mehrere Iterationen umfassen, bis Sie einen VM-Typ angegeben haben das verfügbar war.

Die flexible VM-Funktion von Dataproc unterstützt die Clustererstellung für eine erfolgreiche Anfrage. Wählen Sie dazu sekundäre Worker-VM-Typen aus Ihren eingestuften VM-Listen aus und suchen Sie für Zonen innerhalb der angegebenen Clusterregion mit Verfügbarkeit der aufgeführten VM-Typen.

Terminologie

  • VM-Typ: Die Familie, die Arbeitsspeicherkapazität und die Anzahl der CPU-Kerne einer VM-Instanz. Dataproc unterstützt die Verwendung von vordefinierten und benutzerdefinierten VM-Typen.

  • Sekundäre Worker: Sekundäre Worker keine Daten speichern. Sie dienen nur als Verarbeitungsknoten. Sie können sekundären Workern, um Computing-Ressourcen ohne Speicherskalierung zu skalieren.

Einschränkungen und Überlegungen

  • Flexible VMs sind in Dataproc in Compute Engine 2.0.74+ verfügbar. Dataproc ab 2.1.22+ in Compute Engine Image-Versionen.

  • Während der Vorabversion:

    • Flexible VMs können nur für sekundäre Worker angegeben werden.
    • Sie können entweder Spot oder nicht auf Abruf sekundäre Worker-Typen als flexible VMs, aber nicht beide, in Ihrer Anfrage zum Erstellen eines Clusters. Wenn Sie den sekundären Worker-Typ nicht angeben, verwendet Dataproc Spot-VMs, die auf Abruf verfügbar sind.
  • Sie können bis zu fünf Listen mit eingestuften VM-Typen und bis zu 10 VM-Typen angeben in einer Liste. Weitere Informationen finden Sie unter Flexible VMs anfordern.

  • Für die Erstellung eines Clusters mit flexiblen VMs ist die Verwendung von Automatische Zonenplatzierung von Dataproc, die ermöglicht Dataproc die Auswahl der Zone mit der Kapazität Ihrer VM-Typ-Anfragen.

  • Wenn Ihre Anfrage zur Clustererstellung ein Autoscaling-Richtlinie Flexible VMs können aus verschiedenen VM-Familien stammen, müssen jedoch denselben die Größe des Arbeitsspeichers und die Anzahl der Kerne.

  • Beim Bereitstellen flexibler VMs verwendet Dataproc „beliebige Übereinstimmungen“ verfügbare Reservierungen, aber nicht "spezifisch" Reservierungen (siehe Reservierte Instanzen nutzen). Maschinentypen, die mit Reservierungen übereinstimmen, werden zuerst innerhalb eines Rangs ausgewählt, gefolgt von VM-Typen mit der größten Anzahl von CPUs.

  • Dataproc wendet Google Cloud-Kontingente an bis hin zur flexiblen VM-Bereitstellung.

  • Sie können zwar unterschiedliche CPU-zu-Arbeitsspeicher-Verhältnisse für primäre und sekundären Worker-V-Typen in einem Cluster, kann dies zu Leistungseinbußen führen da das kleinste CPU-zu-Speicher-Verhältnis als kleinste Containereinheit verwendet wird.

  • Wenn Sie einen Cluster aktualisieren, der mit flexiblen VMs erstellt wurde, Dataproc wählt Worker aus und fügt sie aus den flexiblen VM-Listen hinzu, die Sie beim Erstellen des Clusters angegeben haben.

Flexible VMs anfordern

Sie können flexible VMs beim Erstellen eines Dataproc-Clusters angeben mit der Google Cloud Console, der Google Cloud CLI oder Dataproc API.

  • Sie können bis zu fünf Listen mit eingestuften VM-Typen und bis zu 10 VM-Typen angeben in einer Liste. Listen mit dem niedrigsten Rang haben die höchste Priorität. Standardmäßig flexibel VM-Listen haben den Rang 0. Innerhalb einer Liste priorisiert Dataproc VM Typen mit nicht verwendeten Reservierungen, gefolgt von den größten VM-Größen. VM-Typen in einer Liste mit derselben CPU-Anzahl werden gleich behandelt.

Console

So erstellen Sie einen Cluster mit sekundären Worker-VMs für flexible Worker:

  1. Dataproc öffnen Cluster in Compute Engine erstellen in der Google Cloud Console.

  2. Im Bereich Cluster einrichten sind die Standardfelder Werte. Sie können den vorgeschlagenen Namen und die Clusterregion ändern. andere Änderungen vornehmen. Achten Sie darauf, dass Any als Cluster ausgewählt ist Zuzulassende Zone Dataproc – automatische Zonenplatzierung um die Zone mit der besten Verfügbarkeit VM-Typen, die in Ihren flexiblen VM-Listen angegeben sind.

  3. Wählen Sie das Feld Knoten konfigurieren aus. In den sekundären Worker-Knoten die Anzahl und Abrufbarkeit der sekundären Worker angeben.

    • Klicken Sie für jeden Rang sekundärer Worker auf Sekundären Worker hinzufügen. Angabe eines oder mehrerer Maschinentypen, die in jeden Rang einbezogen werden sollen.
  4. Nachdem Sie die Clusterdetails in den Bereichen zur Clustererstellung bestätigt und angegeben haben, Klicken Sie auf Erstellen.

gcloud

Verwenden Sie die Methode gcloud dataproc clusters create Befehl zum Hinzufügen mehrerer secondary-worker-machine-types-Flags zur Angabe einer Rangfolge flexible VM-Listen für Sekundäre Dataproc-Worker Der standardmäßige sekundäre Worker-Typ einer flexiblen VM ist Spot, ein Typ auf Abruf.

Im folgenden Beispiel für die gcloud CLI versucht Dataproc, um sekundäre Worker zuerst mit n2-standard-8 VMs bereitzustellen (Rang 0). Wenn n2-Standard-8-Maschinen sind nicht verfügbar, Dataproc versucht, zum Bereitstellen sekundärer Worker mit e2-standard-8 oder t2d-standard-8 VMs (Rang 1).

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --zone="" \
    --master-machine-type=n1-standard-8 \
    --worker-machine-type=n1-standard-8 \
    --num-workers=4 \
    --num-secondary-workers=4 \
    --secondary-worker-type=non-preemptible \
    --secondary-worker-machine-types="type=n2-standard-8,rank=0" \
    --secondary-worker-machine-types="type=e2-standard-8,type=t2d-standard-8,rank=1"

Hinweise:

  • --zone="": Das flexible VM-Feature benötigt Automatische Zonenplatzierung von Dataproc für Dataproc die Auswahl der Zone erlauben, in der sich Ihre Verfügbare VM-Typen. Leeren Wert übergeben („“) zum Flag --zone überschreibt jede in Ihrer Standardeinstellung angegebene Zonenauswahl gcloud config list.

  • Dataproc generiert die Attribute der role-Komponente basierend auf dem Maschinentyp Kernen und Arbeitsspeicher. Sie können diese vom System generierten Attribute mit dem --properties mit der folgenden Syntax:

    --properties="ROLE:MACHINE_TYPE:COMPONENT_PREFIX:COMPONENT_PROPERTY=VALUE"
    

    In der Vorabversion ist die Rolle secondary_worker die einzige unterstützte Rolle.

    Im folgenden Beispiel ändert das Flag --properties die Anzahl der Kerne von e2-standard-8 Maschinen, die sekundären Worker-Knoten von 8 bis 6 zugewiesen sind:

    --properties="secondary_worker:e2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores=6"
    

API

Verwenden Sie den instanceFlexibilityPolicy.instanceSelectionList. als Teil einer Dataproc API clusters.create Anfrage zum Angeben einer Rangliste von machineTypes für sekundäre Worker.

Beispiel:

Das folgende JSON-Snippet aus einem Dataproc-clusters.create Anfragetext gibt sekundäre Worker-Maschinentypen für Rang 0 und Rang 1 an.

"config": {
  "secondaryWorkerConfig": {
    "instanceFlexibilityPolicy": {
      "instanceSelectionList": [
        {
          "machineTypes": [
            "n1-standard-4",
            "n2-standard-4"
          ],
          "rank": 0
        },
        {
          "machineTypes": [
            "e2-standard-4",
            "n2d-standard-4"
          ],
          "rank": 1
        }
      ]
    }
  }
}

Mit Clusterattributen Komponentenrollen anpassen: Dataproc generiert die Attribute der role-Komponente basierend auf VM-Kernen und Arbeitsspeicher. Sie können diese vom System generierten Attribute überschreiben, SoftwareConfig.properties in Ihre clusters.create-Anfrage mit der folgenden key=value-Syntax ein:

ROLE:MACHINE_TYPE:COMPONENT_PREFIX:COMPONENT_PROPERTY=VALUE

In der Vorabversion ist die Rolle secondary_worker die einzige unterstützte Rolle.

Im folgenden Beispiel ändert das Feld properties die Anzahl der Kerne die dem sekundären Worker-Knoten einer e2-standard-8-VM von 8 bis 6 zugewiesen sind:

"secondary_worker:e2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores=6"