Configura le VM worker Dataflow

Questo documento descrive come configurare le VM worker per un job Dataflow.

Per impostazione predefinita, Dataflow seleziona il tipo di macchina per le VM worker che eseguono il job, insieme alle dimensioni e al tipo di Persistent Disk. Per configurare le VM worker, imposta le seguenti opzioni della pipeline quando crei il job.

Tipo di macchina

Il tipo di macchina Compute Engine che Dataflow utilizza quando avvia le VM worker. Puoi utilizzare tipi di macchine x86 o Arm, inclusi i tipi di macchine personalizzate.

Java

Imposta l'opzione della pipeline workerMachineType.

Python

Imposta l'opzione della pipeline machine_type.

Vai

Imposta l'opzione della pipeline worker_machine_type.

  • Per Arm, sono supportate le serie di macchine Tau T2A e C4A. Per saperne di più sull'utilizzo delle VM Arm, consulta Utilizzare le VM Arm in Dataflow.

  • Le VM x86 sono supportate automaticamente.

  • I tipi di macchine con corecondivisi (ad esempio f1-micro, g1-small, e2-micro, e2-small ed e2-medium) non sono consigliati per i job Dataflow e non sono supportati ai sensi del contratto di servizio di Dataflow.

  • La fatturazione è indipendente dalla famiglia di tipo di macchina. Per saperne di più, consulta Prezzi di Dataflow.

  • Per i tipi di macchine f1-micro e g1-small, Dataflow fattura come se avessero 1 vCPU, mentre per i tipi di macchine e2-micro, e2-small ed e2-medium, Dataflow fattura come se avessero 2 vCPU. Queste tariffe vengono fatturate anche se i tipi di macchine con core condivisi forniscono meno vCPU fatturate di tempo CPU sostenuto.

Tipi di macchine personalizzate

Per specificare un tipo di macchina personalizzata, utilizza il seguente formato: FAMILY-vCPU-MEMORY. Sostituisci quanto segue:

  • FAMILY. Utilizza uno dei seguenti valori:
    Serie di macchineValore
    N1custom
    N2n2-custom
    N2Dn2d-custom
    E2e2-custom
  • vCPU. Il numero di vCPU.
  • MEMORY. La memoria, in MB.

Per attivare la memoria estesa, aggiungi -ext al tipo di macchina. Esempi: n2-custom-6-3072, n2-custom-2-32768-ext.

Per saperne di più sui tipi di macchine personalizzate validi, consulta Tipi di macchine personalizzate nella documentazione di Compute Engine.

Tipi di macchine non supportati per Hyperdisk bilanciato

Quando utilizzi i dischi Hyperdisk bilanciato, il job potrebbe non riuscire e restituire un errore simile al seguente:

hyperdisk-balanced disk type cannot be used by MACHINE_TYPE machine type

Questo accade se selezioni un tipo di macchina incompatibile con Hyperdisk bilanciato. Questo errore può verificarsi anche quando non viene specificato alcun tipo di macchina o quando utilizzi autoVM. Per un elenco dei tipi di macchine compatibili con Hyperdisk bilanciato, consulta Informazioni su Hyperdisk bilanciato.

Tipo di disco

Il tipo di Persistent Disk da utilizzare.

Non specificare un Persistent Disk quando utilizzi Streaming Engine o il tipo di macchina N4 .

Java

Imposta l'opzione della pipeline workerDiskType.

Python

Imposta l'opzione della pipeline worker_disk_type.

Vai

Imposta l'opzione della pipeline disk_type.

Per specificare il tipo di disco, utilizza il seguente formato: compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE.

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto
  • ZONE: la zona per il Persistent Disk, ad esempio us-central1-b
  • DISK_TYPE: il tipo di disco, ad esempio pd-ssd, pd-standard o hyperdisk-balanced

Per saperne di più, consulta la pagina di riferimento dell'API Compute Engine per diskTypes.

Esegui il provisioning di IOPS e throughput

Quando utilizzi i dischi Hyperdisk bilanciato, puoi eseguire il provisioning di IOPS e throughput indipendentemente dalle dimensioni del disco. Per eseguire il provisioning di IOPS e throughput, utilizza le seguenti opzioni della pipeline:

Java

  • Per eseguire il provisioning di IOPS, imposta l'opzione della pipeline diskProvisionedIOPS.
  • Per eseguire il provisioning del throughput in MiB/s, imposta l'opzione della pipeline diskProvisionedThroughput.

Python

  • Per eseguire il provisioning di IOPS, imposta l'opzione della pipeline disk_provisioned_iops.
  • Per eseguire il provisioning del throughput in MiB/s, imposta l'opzione della pipeline disk_provisioned_throughput_mibps.

Vai

  • Per eseguire il provisioning di IOPS, imposta l'opzione della pipeline disk_provisioned_iops.
  • Per eseguire il provisioning del throughput in MiB/s, imposta l'opzione della pipeline disk_provisioned_throughput_mibps.

Se non imposti queste opzioni, i job che utilizzano i dischi hyperdisk-balanced utilizzano per impostazione predefinita le prestazioni di base di 3000 IOPS e 140 MiB/s di throughput. Per saperne di più, consulta Informazioni su Hyperdisk bilanciato nella documentazione di Compute Engine.

Limitazioni

  • Il provisioning di IOPS e throughput per Hyperdisk bilanciato è supportato nelle versioni dell'SDK Apache Beam 2.74.0 o successive.

Dimensioni del disco

Le dimensioni del Persistent Disk.

Java

Imposta l'opzione della pipeline diskSizeGb.

Python

Imposta l'opzione della pipeline disk_size_gb.

Vai

Imposta l'opzione della pipeline disk_size_gb.

Se imposti questa opzione, specifica almeno 30 GB per tenere conto dell'immagine di avvio del worker e dei log locali.

La riduzione delle dimensioni del disco riduce l'I/O di shuffle disponibile. I job vincolati allo shuffle che non utilizzano Dataflow Shuffle o Streaming Engine potrebbero comportare un aumento del tempo di esecuzione e del costo del job.

Job batch

Per i job batch che utilizzano Dataflow Shuffle, questa opzione imposta le dimensioni di un disco di avvio della VM worker. Per i job batch che non utilizzano Dataflow Shuffle, questa opzione imposta le dimensioni dei dischi utilizzati per archiviare i dati sottoposti a shuffle; le dimensioni del disco di avvio non sono interessate.

Se un job batch utilizza Dataflow Shuffle, le dimensioni predefinite del disco sono 25 GB. In caso contrario, il valore predefinito è 250 GB.

Job di flusso

Per i job di flusso che utilizzano Streaming Engine, questa opzione imposta le dimensioni dei dischi di avvio. Per i job di flusso che non utilizzano Streaming Engine, questa opzione imposta le dimensioni di ogni Persistent Disk aggiuntivo creato dal servizio Dataflow; il disco di avvio non è interessato.

Se un job di flusso non utilizza Streaming Engine, puoi impostare le dimensioni del disco di avvio con il flag di esperimento streaming_boot_disk_size_gb. Ad esempio, specifica --experiments=streaming_boot_disk_size_gb=80 per creare dischi di avvio di 80 GB.

Se un job di flusso utilizza Streaming Engine, le dimensioni predefinite del disco sono 30 GB. In caso contrario, il valore predefinito è 400 GB.

Piattaforma CPU minima

Se hai carichi di lavoro sensibili alle prestazioni che dipendono da funzionalità CPU specifiche, puoi specificare una piattaforma CPU minima per le VM worker. Questa opzione garantisce che i worker Dataflow utilizzino un processore che soddisfi o superi la generazione CPU specificata.

Per specificare la piattaforma CPU minima, imposta l'opzione della pipeline min_cpu_platform sperimentale. Il valore deve essere il nome esatto della piattaforma CPU selezionata, ad esempio AMD Milan o Intel Ice Lake. Ad esempio, specifica --experiments=min_cpu_platform='AMD Milan' per impostare la piattaforma CPU minima su AMD Milan. Per un elenco delle piattaforme CPU minime supportate, consulta Disponibilità delle piattaforme CPU. Per informazioni sulle limitazioni, consulta Limitazioni quando si specifica una piattaforma CPU minima.

Per verificare che le VM worker Dataflow vengano create con la piattaforma CPU minima specificata, controlla le voci di Cloud Logging per il job nel seguente modo:

  1. Vai alla console Cloud Logging in Google Cloud Console. Google Cloud
  2. Utilizza il seguente filtro e sostituisci la piattaforma CPU di esempio e l'ID job Dataflow con le informazioni del tuo job.

    resource.type="gce_instance"
    protoPayload.request.minCpuPlatform="AMD Milan"
    "dataflow_job_id"
    
  3. Esamina i log risultanti per verificare che Dataflow abbia specificato correttamente la piattaforma CPU minima durante il processo di creazione della VM.

Utilizzare Cloud Storage FUSE per montare i bucket Cloud Storage sulle VM Dataflow

Cloud Storage FUSE ti consente di montare direttamente i bucket Cloud Storage con le VM Dataflow, consentendo al software di accedere ai file come se fossero locali. Questa integrazione elimina la necessità di pre-scaricare i dati, semplificando l'accesso ai dati per i carichi di lavoro. Per saperne di più, consulta Elaborare i dati di machine learning utilizzando Dataflow e Cloud Storage FUSE.

Passaggi successivi