VM flessibili di Dataproc

Le VM flessibili sono una funzionalità di Dataproc che ti consente di specificare elenchi con priorità dei tipi di VM per i worker secondari di Dataproc quando crei un cluster Dataproc.

Perché utilizzare VM flessibili?

In precedenza, se un tipo di VM non era disponibile quando inviavi una richiesta di creazione di un cluster, la richiesta non andava a buon fine e dovevi aggiornare la richiesta, lo script o il codice per specificare un tipo di VM "secondo migliore". Questa procedura di nuova richiesta potrebbe richiedere più iterazioni finché non hai specificato un tipo di VM disponibile.

La funzionalità VM flessibile di Dataproc contribuisce al buon esito della richiesta di creazione del cluster selezionando i tipi di VM worker secondarie dagli elenchi di VM classificate e cercando le zone all'interno della regione del cluster specificata in cui sono disponibili i tipi di VM elencati.

Terminologia

  • Tipo di VM: Famiglia, capacità di memoria e numero di core della CPU di un'istanza VM. Dataproc supporta l'utilizzo di tipi di VM predefinite e personalizzate.

  • Worker secondari: i worker secondari non memorizzano dati. Funzionano solo come nodi di elaborazione. Puoi utilizzare la modalità ai worker secondari per scalare il computing senza scalare l'archiviazione.

Limitazioni e considerazioni

  • Le VM flessibili sono disponibili in Dataproc su Compute Engine 2.0.74+, Dataproc su Compute Engine e 2.1.22+ e versioni successive versioni immagine.

  • Durante la release di anteprima:

    • Puoi specificare VM flessibili solo per i worker secondari.
    • Puoi specificare Spot o non prerilasciabile tipi di worker secondari come VM flessibili, ma non entrambi, nel cluster creano una richiesta. Se Non specifichi il tipo di worker secondario, Dataproc utilizza le VM spot, che sono prerilasciabili.
  • Puoi specificare fino a cinque elenchi di tipi di VM classificati, con un massimo di 10 tipi di VM in un elenco. Per ulteriori informazioni, consulta Come richiedere VM flessibili.

  • La creazione di un cluster con VM flessibili richiede l'uso di Posizionamento della zona automatica di Dataproc, che permette a Dataproc di scegliere la zona in grado di soddisfare per le richieste dei tipi di VM.

  • Se la richiesta di creazione del cluster include criterio di scalabilità automatica, Le VM flessibili possono provenire da diverse famiglie di VM, ma devono avere lo stesso di memoria e numero di core.

  • Durante il provisioning delle VM flessibili, Dataproc utilizza "qualsiasi prenotazione disponibile", ma non le prenotazioni "specifiche" (consulta Utilizzare le istanze riservate). I tipi di macchine corrispondenti alle prenotazioni vengono selezionati per primi all'interno di un ranking, seguiti dai tipi di VM con il maggior numero di CPU.

  • Dataproc applica le quote di Google Cloud al provisioning flessibile delle VM.

  • Sebbene sia possibile specificare diversi rapporti CPU-memoria per i modelli principali tipi V di worker secondari in un cluster, ciò può portare a un peggioramento delle prestazioni perché il rapporto CPU/memoria più basso viene utilizzato come unità container più piccola.

  • Se aggiorni un cluster creato utilizzando VM flessibili, Dataproc seleziona e aggiunge worker dagli elenchi di VM flessibili che che hai fornito al momento della creazione del cluster.

Come richiedere VM flessibili

Puoi specificare VM flessibili durante la creazione di un cluster Dataproc utilizzando la console Google Cloud, Google Cloud CLI o l'API Dataproc.

  • Puoi specificare fino a cinque elenchi di tipi di VM classificati, con un massimo di 10 tipi di VM in un elenco. Gli elenchi con il ranking più basso hanno la priorità più alta. Per impostazione predefinita, gli elenchi di VM flessibili hanno un ranking pari a 0. All'interno di un elenco, Dataproc dà la priorità ai tipi di VM con prenotazioni inutilizzate, seguiti dalle dimensioni più grandi delle VM. I tipi di VM all'interno di un elenco con lo stesso conteggio di CPU vengono trattati allo stesso modo.

Console

Per creare un cluster con VM flessibili per i worker secondari:

  1. Apri la pagina Dataproc Crea un cluster su Compute Engine nella console Google Cloud.

  2. Il riquadro Configura cluster è selezionato e i campi sono compilati con i valori predefiniti. Puoi modificare il nome suggerito e la regione del cluster. apportare altre modifiche. Assicurati che Qualsiasi sia selezionato come Zona del cluster per consentire al posizionamento in zona automatica di Dataproc di scegliere la zona con la migliore disponibilità dei tipi di VM specificati negli elenchi di VM flessibili.

  3. Seleziona il riquadro Configura nodi. Nella sezione Nodi worker secondari, specifica il numero e la prerilascioabilità dei worker secondari.

    • Fai clic su Aggiungi un lavoratore secondario per ogni livello di lavoratori secondari, specificando uno o più tipi di macchina da includere in ciascun ranking.
  4. Dopo aver confermato e specificato i dettagli del cluster nei riquadri di creazione del cluster, fai clic su Crea.

gcloud

Utilizza la gcloud dataproc clusters create per aggiungere più flag secondary-worker-machine-types per specificare il ranking di VM flessibili Worker secondari Dataproc. Il tipo di worker secondario della VM flessibile predefinito è Spot, di tipo prerilasciabile.

Nel seguente esempio della gcloud CLI, Dataproc tenta di eseguire per eseguire prima il provisioning dei worker secondari con n2-standard-8 VM (ranking 0). Se le macchine n2-standard-8 non sono disponibili, Dataproc tenta di eseguire il provisioning dei worker secondari con VM e2-standard-8 o t2d-standard-8 (rango 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"

Note:

  • --zone="": la funzionalità VM flessibile richiede il posizionamento in una zona automatica di Dataproc per consentire a Dataproc di scegliere la zona in cui sono disponibili i tipi di VM. Trasmettere un valore vuoto ("") al flag --zone sostituisce qualsiasi selezione di zona specificata nel valore predefinito. gcloud config list.

  • Dataproc genera le proprietà del componente role in base alla macchina e memoria integrata. Puoi sostituire queste proprietà generate dal sistema con il --properties flag, utilizzando la seguente sintassi:

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

    Nella release di anteprima, il ruolo secondary_worker è l'unico ruolo supportato.

    Nell'esempio seguente, il flag --properties modifica il numero di core delle macchine e2-standard-8 assegnate ai nodi worker secondari da 8 a 6:

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

API

Utilizza instanceFlexibilityPolicy.instanceSelectionList come parte di una richiesta dell'API Dataproc clusters.create per specificare un elenco classificato di machineTypes per i worker secondari.

Esempio:

Il seguente snippet JSON da un clusters.create corpo della richiesta di Dataproc specifica i tipi di macchine dei worker secondari per il ranking 0 e 1.

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

Utilizzo delle proprietà del cluster per personalizzare i ruoli dei componenti: Dataproc genera le proprietà del componente role in base ai core e alla memoria delle VM. Puoi eseguire l'override di queste proprietà generate dal sistema aggiungendo SoftwareConfig.properties alla richiesta clusters.create, utilizzando la seguente sintassi key=value:

ROLE:MACHINE_TYPE:COMPONENT_PREFIX:COMPONENT_PROPERTY=VALUE

Nella versione di anteprima, il ruolo secondary_worker è l'unico supportato.

Nell'esempio seguente, il campo properties cambia il numero di core assegnato al nodo worker secondario di una VM e2-standard-8 da 8 a 6:

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