Tipi di macchine supportati

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

I cluster Dataproc supportano i seguenti tipi di macchine predefinite di Compute Engine (la disponibilità dei tipi di macchine varia in base alla regione):

  • Tipi di macchine per uso generico, che includono i tipi di macchine N1, N2, N2D, E2, C3, C4, N4 e N4D (Dataproc supporta anche i tipi di macchine personalizzate N1, N2, N2D, E2, N4 e N4D).

    Limitazioni:

    • Il tipo di macchina n1-standard-1 non è supportato per le immagini 2.0 e successive (il tipo di macchina n1-standard-1 non è consigliato per le immagini precedenti alla versione 2.0 . In alternativa, utilizza un tipo di macchina con più memoria).
    • I tipi di macchine con core condivisi non sono supportati, che includono i seguenti tipi di macchine non supportati:
      • E2: tipi di macchine con core condivisi e2-micro, e2-small ed e2-medium e
      • N1: tipi di macchine con core condivisi f1-micro e g1-small.
    • Dataproc seleziona hyperdisk-balanced come tipo di disco di avvio se il tipo di macchina è C4, N4 o N4D.
  • Tipi di macchine ottimizzate per il calcolo, che includono i tipi di macchine C2 e C2D.
  • Tipi di macchine ottimizzate per la memoria, che includono i tipi di macchine M1 e M2.
  • Tipi di macchine ARM, che includono C4A tipi di macchine.

Tipi di macchine personalizzate

Dataproc supporta le serie N1, N2, N2D, E2, N4 e N4D di tipi di macchine personalizzate.

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

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

Ad esempio, se hai un carico di lavoro che richiede più potenza di elaborazione di quella fornita da un'istanza n1-standard-4, ma il passaggio successivo, un'n1-standard-8 istanza, fornisce una capacità eccessiva. Con i tipi di macchine personalizzate, puoi creare cluster Dataproc con nodi master e/o worker nell'intervallo intermedio, con 6 CPU virtuali e 25 GB di memoria.

Specificare un tipo di macchina personalizzata

I tipi di macchine personalizzate utilizzano una specifica speciale machine type 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 (vedi Esprimere la memoria in GB o MB). In questo esempio, 22,5 (GB) viene moltiplicato per 1024: 22.5 * 1024 = 23040.

Utilizza la sintassi sopra riportata per specificare il tipo di macchina personalizzata con i 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 segue le impostazioni dei worker primari e non può essere impostato separatamente (vedi Worker secondari: VM prerilasciabili e non prerilasciabili).

Prezzi dei tipi di macchine personalizzate

I prezzi dei tipi di macchine 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.

Creare un cluster Dataproc con un tipo di macchina specificato

Console

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

Comando g-cloud

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

  • Il --master-machine-type machine-type flag consente di impostare il tipo di macchina predefinita o personalizzata utilizzata dall'istanza VM master nel cluster (o dalle istanze master se crei un cluster ad alta disponibilità)
  • Il --worker-machine-type custom-machine-type flag 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 elenco di 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 il machineTypeUri in masterConfig e/o workerConfig InstanceGroupConfig nella cluster.create 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
      }
    }
  }
}

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

Dataproc supporta i 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 del riquadro Configura nodi nella pagina Dataproc Crea un cluster nella Google Cloud console.

Comando gcloud

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

Esempio

Il seguente esempio di riga di comando gcloud crea un cluster Dataproc con 1 CPU e 50 GB di memoria (50 * 1024 = 51200) in ogni 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 snippet JSON <code.instancegroupconfig< code="" dir="ltr" translate="no"></code.instancegroupconfig<> di esempio di una richiesta clusters.create dell'API REST Dataproc specifica 1 CPU e 50 GB di memoria (50 * 1024 = 51200) in ogni nodo:

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

Tipi di macchine ARM

Dataproc supporta la creazione di un cluster con nodi che utilizzano tipi di macchine ARM, come il tipo di macchina C4A.

Requisiti e limitazioni:

  • L'immagine Dataproc deve essere compatibile con il chipset ARM. Le immagini Dataproc 2.1-ubuntu20-arm, 2.2-ubuntu22-arm, e 2.3-ubuntu22-arm (e il suffisso -arm successivo) sono compatibili con il chipset ARM. Le immagini compatibili con ARM non supportano molti componenti facoltativi e di azioni di inizializzazione , come indicato nelle pagine delle versioni di rilascio delle immagini.
  • Poiché è necessario specificare un'immagine per un cluster, i nodi master, worker e worker secondari devono utilizzare un tipo di macchina ARM compatibile con l'immagine ARM Dataproc selezionata.
  • Le funzionalità di Dataproc non compatibili con i tipi di macchine ARM non sono disponibili (ad esempio, le unità SSD locali non sono supportate dai tipi di macchine C4A).
  • Le immagini ARM supportano solo i componenti preinstallati e un set limitato di componenti facoltativi. Gli altri componenti facoltativi e tutte le azioni di inizializzazione non sono supportati.

Creare un cluster Dataproc con un tipo di macchina ARM

Console

Al momento, la Google Cloud console non supporta la creazione di un cluster di tipi di macchine ARM Dataproc.

gcloud

Per creare un cluster Dataproc che utilizza il tipo di macchina ARM c4a-standard-4 esegui il seguente comando gcloud localmente 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=c4a-standard-4 \
    --worker-machine-type=c4a-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, 2.2.61-ubuntu22-arm e 2.3.7-ubuntu22-arm.

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

  • Le immagini *-arm supportano solo i componenti preinstallati e i seguenti componenti facoltativi elencati nelle versioni di rilascio 2.1.x, versioni di rilascio 2.2.x, e versioni di rilascio 2.3.x. Gli altri componenti facoltativi 2.1, 2.2 e 2.3, insieme a tutte le azioni di inizializzazione elencate, non sono supportati:

    • Apache Hive WebHCat
    • Docker
    • Zeppelin
    • Zookeeper (installato nei cluster ad alta disponibilità; componente facoltativo nei cluster non ad alta disponibilità)

API

clusters.create

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": "c4a-standard-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
      }
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "c4a-standard-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    },
    "softwareConfig": {
      "imageVersion": "2.1-ubuntu20-arm"
    }
  }
}

Passaggi successivi