VM flessibili di Dataproc

Le VM flessibili sono una funzionalità di Dataproc che consente di specificare elenchi prioritari di tipi di VM per Dataproc lavoratori secondari quando creare un cluster Dataproc.

Perché utilizzare VM flessibili?

In precedenza, se un tipo di VM non era disponibile al momento dell'invio di creazione del cluster, la richiesta non è andata a buon fine e avevi bisogno la tua richiesta, lo script o il codice per specificare un valore "next-best" Tipo di VM. Questo il processo di nuova richiesta potrebbe includere più iterazioni finché non specifichi un tipo di VM disponibile.

La funzionalità VM flessibile di Dataproc consente di creare i cluster la richiesta riesce selezionando tipi di VM worker secondari dagli elenchi di VM classificate, quindi cercando per le zone all'interno della regione specificata per il cluster con disponibilità dei 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: Worker secondari e non archiviano dati. Funzionano solo come nodi di elaborazione. Puoi utilizzare 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 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 di VM flessibili, Dataproc utilizza "qualsiasi corrispondenza" prenotazioni disponibili, ma non "specifiche" le prenotazioni (vedi Utilizza istanze riservate). I tipi di macchine che corrispondono alle prenotazioni vengono prima selezionati all'interno di un ranking, seguiti da 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 in un elenco. Gli elenchi con il ranking più basso hanno la priorità più alta. Per impostazione predefinita, Il ranking degli elenchi di VM è 0. All'interno di un elenco, Dataproc dà priorità alle VM tipi con prenotazioni inutilizzate, seguite dalle dimensioni VM più grandi. 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 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 e i relativi valori. Puoi modificare il nome suggerito e la regione del cluster. apportare altre modifiche. Assicurati che Qualsiasi sia selezionato come cluster Zona per consentire Posizionamento della zona automatica di Dataproc di scegliere la zona con la migliore disponibilità 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 prerilasciabilità 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 per 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. Tentativi di Dataproc per eseguire il provisioning dei worker secondari con e2-standard-8 o t2d-standard-8 VM (ranking 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 Posizionamento della zona automatica di Dataproc su consenti a Dataproc di scegliere la zona con Tipi di VM disponibili per l'uso. 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 eseguire l'override di queste proprietà generate dal sistema con --properties, con 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 cambia il numero di core di e2-standard-8 macchine assegnate a nodi worker secondari da 8 a 6:

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

API

Utilizza la instanceFlexibilityPolicy.instanceSelectionList nell'ambito di un'API Dataproc clusters.create per specificare un elenco classificato di machineTypes per i worker secondari.

Esempio:

Il seguente snippet JSON di un Dataproc clusters.create corpo della richiesta specifica i tipi di macchina dei worker secondari per il ranking 0 e il ranking 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 release di anteprima, il ruolo secondary_worker è l'unico ruolo 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"