Tipi di macchine supportati

I cluster Dataproc sono basati su istanze di Compute Engine. I tipi di macchina definiscono le risorse hardware virtualizzate disponibili per un'istanza. Compute Engine offre sia tipi di macchine predefinite sia tipi di macchine personalizzate. I cluster Dataproc possono utilizzare tipi sia predefiniti che personalizzati per nodi master e/o worker.

I cluster Dataproc supportano i seguenti tipi di macchine predefinite di Compute Engine (la disponibilità dei tipo di macchina varia in base all'area geografica):

Tipi di macchine personalizzate

Dataproc supporta i tipi di macchine personalizzate della serie N1.

I tipi di macchine personalizzate sono ideali per i seguenti carichi di lavoro:

  • Carichi di lavoro non adatti ai tipi di macchine predefinite.
  • Carichi di lavoro che richiedono più potenza di elaborazione o più memoria, ma che non richiedono tutti gli upgrade forniti dal livello di tipo di macchina successivo.

Ad esempio, se hai un carico di lavoro che necessita di una potenza di elaborazione superiore a quella fornita da un'istanza n1-standard-4, ma nel passaggio successivo, un'istanza n1-standard-8, fornisce troppa capacità. Con i tipi di macchine personalizzate, puoi creare cluster Dataproc con nodi master e/o worker nella fascia intermedia, con 6 CPU virtuali e 25 GB di memoria.

Specifica un tipo di macchina personalizzata

I tipi di macchine personalizzate utilizzano una specifica machine type speciale e sono soggetti a limitazioni. Ad esempio, la specifica del tipo di macchina personalizzata per una VM personalizzata con 6 CPU virtuali e 22,5 GB di memoria è custom-6-23040.

I numeri nella specifica del tipo di macchina corrispondono al numero di CPU virtuali (vCPU) nella macchina (6) e alla quantità di memoria (23040). La quantità di memoria viene calcolata moltiplicando la quantità di memoria in gigabyte per 1024 (consulta la sezione Espressione di memoria in GB o MB). In questo esempio, 22,5 (GB) viene moltiplicato per 1024: 22.5 * 1024 = 23040.

Utilizza la sintassi sopra per specificare il tipo di macchina personalizzata con i tuoi cluster. Puoi impostare il tipo di macchina per i nodi master o worker o per entrambi quando crei un cluster. Se imposti entrambi, il nodo master può utilizzare un tipo di macchina personalizzata diverso da quello utilizzato dai worker. Il tipo di macchina utilizzato dai worker secondari è conforme alle impostazioni dei worker principali e non può essere configurato separatamente (vedi Worker secondari - VM prerilasciabili e non prerilasciabili).

Prezzi tipo di macchina personalizzate

I prezzi tipo di macchina personalizzate si basano sulle risorse utilizzate in una macchina personalizzata. I prezzi di Dataproc vengono aggiunti al costo delle risorse di calcolo e si basano sul numero totale di CPU virtuali (vCPU) utilizzate in un cluster.

Crea un cluster Dataproc con un tipo di macchina specificato

Console

Dal riquadro Configura nodi della pagina Crea un cluster di Dataproc nella console Google Cloud, seleziona famiglia, serie e tipo di macchine per i nodi master e worker del cluster.

Comando g-cloud

Esegui il comando gcloud dataproc clusters create con i seguenti flag per creare un cluster Dataproc con tipi di macchine master e/o worker:

  • Il flag --master-machine-type machine-type consente di impostare il tipo di macchina predefinita o personalizzata utilizzato dall'istanza VM master nel cluster (o istanze master se crei un cluster ad alta disponibilità)
  • Il flag --worker-machine-type custom-machine-type consente di impostare il tipo di macchina predefinita o personalizzata utilizzata dalle istanze VM worker nel cluster

Esempio:

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-6-23040 /
    --worker-machine-type custom-6-23040 /
    other args
Una volta avviato il cluster Dataproc, i dettagli del cluster vengono visualizzati nella finestra del terminale. Di seguito è riportato un esempio parziale delle proprietà del cluster visualizzate nella finestra del terminale:
...
properties:
  distcp:mapreduce.map.java.opts: -Xmx1638m
  distcp:mapreduce.map.memory.mb: '2048'
  distcp:mapreduce.reduce.java.opts: -Xmx4915m
  distcp:mapreduce.reduce.memory.mb: '6144'
  mapred:mapreduce.map.cpu.vcores: '1'
  mapred:mapreduce.map.java.opts: -Xmx1638m
...

API REST

Per creare un cluster con tipi di macchine personalizzate, imposta machineTypeUri in masterConfig e/o workerConfig InstanceGroupConfig nella richiesta API cluster.create.

Esempio:

POST /v1/projects/my-project-id/regions/is-central1/clusters/
{
  "projectId": "my-project-id",
  "clusterName": "test-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "default",
      "zoneUri": "us-central1-a"
    },
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "n1-highmem-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "n1-highmem-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    }
  }
}

Crea un cluster Dataproc con tipo di macchina personalizzata con memoria estesa

Dataproc supporta tipi di macchine personalizzate con memoria estesa oltre il limite di 6,5 GB per vCPU (vedi Prezzi della memoria estesa).

Console

Fai clic su Estendi memoria quando personalizzi la memoria del tipo di macchina nella sezione Nodo master e/o Nodi worker dal riquadro Configura nodi nella pagina Crea un cluster di Dataproc nella console Google Cloud.

Comando gcloud

Per creare un cluster dalla riga di comando gcloud con CPU personalizzate con memoria estesa, aggiungi un suffisso -ext ai flag ‑‑master-machine-type e/o ‑‑worker-machine-type.

Esempio

Il seguente esempio di riga di comando gcloud crea un cluster Dataproc con 1 CPU e 50 GB di memoria (50 * 1024 = 51.200) in ciascun nodo:

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-1-51200-ext /
    --worker-machine-type custom-1-51200-ext /
    other args

API

Il seguente esempio Lo snippet JSON di una richiesta clusters.create dell'API REST Dataproc specifica 1 CPU e 50 GB di memoria (50 * 1024 = 51.200) in ciascun nodo:

...
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "custom-1-51200-ext",
    ...
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "custom-1-51200-ext",
     ...
...

Tipi di macchina ARM

Dataproc supporta la creazione di un cluster con nodi che utilizzano tipi di macchine ARM, ad esempio il tipo di macchina T2A.

Requisiti e limitazioni:

  • L'immagine Dataproc deve essere compatibile con il chipset ARM (attualmente solo l'immagine 2.1-ubuntu20-arm di Dataproc è compatibile con il CHIPSET ARM). Tieni presente che questa immagine non supporta molti componenti facoltativi e componenti aggiuntivi di inizializzazione (vedi le versioni di release 2.1.x).
  • Poiché per un cluster deve essere specificata un'immagine, i nodi master, worker e worker secondari devono utilizzare un tipo di macchina ARM compatibile con l'immagine ARM di Dataproc selezionata.
  • Le funzionalità di Dataproc non compatibili con i tipi di macchine ARM non sono disponibili (ad esempio, gli SSD locali non sono supportate dai tipi di macchine T2A).

Crea un cluster Dataproc con un tipo di macchina ARM

Console

Attualmente, la console Google Cloud non supporta la creazione di un cluster di tipo di macchina Dataproc ARM.

gcloud

Per creare un cluster Dataproc che utilizza il tipo di macchina t2a-standard-4 ARM, esegui il comando gcloud seguente in locale in una finestra del terminale o in Cloud Shell.

gcloud dataproc clusters create cluster-name \
    --region=REGION \
    --image-version=2.1-ubuntu20-arm \
    --master-machine-type=t2a-standard-4 \
    --worker-machine-type=t2a-standard-4

Note:

  • REGION: la regione in cui si troverà il cluster.

  • Le immagini ARM sono disponibili a partire da 2.1.18-ubuntu20-arm.

  • Consulta la documentazione di riferimento gcloud dataproc clusters create per informazioni sui flag della riga di comando aggiuntivi che puoi utilizzare per personalizzare il cluster.

  • *-arm images supporta solo i componenti installati e i seguenti componenti facoltativi elencati nella pagina Versioni release 2.1.x (i restanti componenti facoltativi 2.1 e tutte le azioni di inizializzazione elencati in questa pagina non sono supportati):

API

La seguente richiesta clusters.create dell'API REST Dataproc di esempio crea un cluster di tipo di macchina ARM.

POST /v1/projects/my-project-id/regions/is-central1/clusters/
{
  "projectId": "my-project-id",
  "clusterName": "sample-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "default",
      "zoneUri": "us-central1-a"
    },
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "t2a-standard-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
      }
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "t2a-standard-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    },
    "softwareConfig": {
      "imageVersion": "2.1-ubuntu20-arm"
    }
  }
}

Per maggiori informazioni