Utilizza Dataflow Runner V2

Quando utilizzi Dataflow per eseguire la pipeline, l'esecutore di Dataflow carica il codice e le dipendenze della pipeline in un bucket Cloud Storage e crea un job Dataflow. Questo job Dataflow esegue la pipeline su risorse gestite in Google Cloud.

  • Per le pipeline batch che utilizzano l'SDK Java Apache Beam versione 2.54.0 o successive, Runner v2 è abilitato per impostazione predefinita.
  • Per le pipeline che utilizzano l'SDK Java di Apache Beam, Runner v2 è obbligatorio per l'esecuzione di pipeline multilingue, l'utilizzo di container personalizzati o l'utilizzo di pipeline di modifiche in tempo reale di Spanner o Bigtable. In altri casi, utilizza il runner predefinito.
  • Per le pipeline che utilizzano l'SDK Apache Beam Python 2.21.0 o versioni successive, Runner v2 è abilitato per impostazione predefinita. Per le pipeline che utilizzano l'SDK Python Apache Beam 2.45.0 e versioni successive, Dataflow Runner v2 è l'unico runner di Dataflow disponibile.
  • Per l'SDK Apache Beam per Go, Dataflow Runner v2 è l'unico runner disponibile per Dataflow.

Runner v2 utilizza un'architettura basata su servizi che apporta vantaggi ad alcune pipeline:

Limitazioni e restrizioni

Dataflow Runner v2 ha i seguenti requisiti:

  • Dataflow Runner v2 è disponibile solo nelle regioni elencate in Località Dataflow.
  • Dataflow Runner v2 richiede Streaming Engine per i job di flusso e Dataflow shuffling per i job batch.
  • Poiché Dataflow Runner v2 richiede Streaming Engine per i job di elaborazione in modalità flusso, qualsiasi trasformazione Apache Beam che richiede Dataflow Runner v2 richiede anche l'utilizzo di Streaming Engine per i job di elaborazione in modalità flusso. Ad esempio, il connettore Pub/Sub Lite I/O per l'SDK Apache Beam per Python è una trasformazione multilingue che richiede Dataflow Runner v2. Se provi a disabilitare Streaming Engine per un job o un modello che utilizza questa trasformazione, il job avrà esito negativo.
  • Per le pipeline in modalità flusso che utilizzano l'SDK Java Apache Beam, le classi MapState e SetState non sono supportate.
  • Per le pipeline in modalità batch e flusso che utilizzano l'SDK Java Apache Beam, le classi OrderedListState e AfterSynchronizedProcessingTime non sono supportate.

Abilita Dataflow Runner v2

Per abilitare Dataflow Runner v2, segui le istruzioni di configurazione per l'SDK Apache Beam.

Java

Dataflow Runner v2 richiede l'SDK Apache Beam 2.30.0 o versioni successive, con la versione 2.44.0 o successiva consigliata.

Per le pipeline batch che utilizzano l'SDK Java Apache Beam versione 2.54.0 o successive, Runner v2 è abilitato per impostazione predefinita.

Per abilitare Runner v2, esegui il job con il flag --experiments=use_runner_v2.

Per disattivare Runner v2, utilizza il flag --experiments=disable_runner_v2.

Python

Per le pipeline che utilizzano l'SDK Apache Beam Python 2.21.0 o versioni successive, Runner v2 è abilitato per impostazione predefinita.

Dataflow Runner v2 non è supportato con l'SDK Apache Beam Python 2.20.0 e versioni precedenti.

In alcuni casi, la pipeline potrebbe non utilizzare Runner v2 anche se viene eseguita su una versione dell'SDK supportata. In questi casi, per eseguire il job con Runner v2, utilizza il flag --experiments=use_runner_v2.

Se vuoi disabilitare Runner v2 e il tuo job è identificato come auto_runner_v2 esperimento, utilizza il flag --experiments=disable_runner_v2. La disabilitazione di Runner V2 non è supportata con l'SDK Apache Beam Python 2.45.0 e versioni successive.

Go

Dataflow Runner v2 è l'unico runner Dataflow disponibile per l'SDK Apache Beam per Go. Runner v2 è abilitato per impostazione predefinita.

Monitora il tuo job

Utilizza l'interfaccia di monitoraggio per visualizzare le metriche dei job Dataflow, come l'utilizzo della memoria, l'utilizzo della CPU e altro ancora.

I log delle VM worker sono disponibili tramite Esplora log e l'interfaccia di monitoraggio di Dataflow. I log delle VM worker includono i log del processo di sfruttamento dell'runner e quelli dei processi dell'SDK. Puoi utilizzare i log della VM per risolvere i problemi del job.

Risoluzione dei problemi di Runner v2

Per risolvere i problemi relativi ai job utilizzando Dataflow Runner v2, segui i passaggi standard per la risoluzione dei problemi delle pipeline. Il seguente elenco fornisce informazioni aggiuntive su come funziona Dataflow Runner v2:

  • I job Dataflow Runner v2 eseguono due tipi di processi sulla VM worker: il processo SDK e il processo di sfruttamento dell'esecuzione. A seconda della pipeline e del tipo di VM, potrebbero essere presenti uno o più processi SDK, ma c'è un solo processo di sfruttamento dell'esecuzione per ogni VM.
  • I processi dell'SDK eseguono il codice utente e altre funzioni specifiche del linguaggio. Il processo di impaginazione dei runner gestisce tutto il resto.
  • Il processo di sfruttamento dell'runner attende la connessione di tutti i processi dell'SDK prima di iniziare a richiedere il lavoro da Dataflow.
  • I job potrebbero subire ritardi se la VM worker scarica e installa le dipendenze durante l'avvio del processo SDK. Se si verificano problemi durante il processo di un SDK, ad esempio durante l'avvio o l'installazione delle librerie, il worker segnala il proprio stato come non integro. Se i tempi di avvio aumentano, abilita l'API Cloud Build sul tuo progetto e invia la pipeline con il seguente parametro: --prebuild_sdk_container_engine=cloud_build.
  • Poiché Dataflow Runner v2 utilizza i checkpoint, ogni worker può attendere fino a cinque secondi durante il buffering delle modifiche prima di inviare le modifiche per un'ulteriore elaborazione. Di conseguenza, è prevista una latenza di circa sei secondi.
  • Per diagnosticare i problemi nel codice utente, esamina i log dei worker dai processi dell'SDK. Se riscontri errori nei log del webhook per runner, contatta l'assistenza per segnalare un bug.
  • Per eseguire il debug di errori comuni relativi alle pipeline multilingue di Dataflow, consulta la guida Suggerimenti per le pipeline multilingue.