Usa Dataflow Runner V2

Quando utilizzi Dataflow per eseguire la pipeline, il runner 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 Apache Beam, Runner v2 è obbligatorio quando si eseguono pipeline multilingue, si usano container personalizzati o si utilizzano le pipeline di modifiche in tempo reale di Spanner o Bigtable. In altri casi, utilizza il runner predefinito.
  • Per le pipeline che utilizzano la versione 2.21.0 o successive dell'SDK Apache Beam per Python, Runner v2 è abilitato per impostazione predefinita. Per le pipeline che utilizzano l'SDK per 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 di Dataflow disponibile.

Runner v2 utilizza un'architettura basata su servizi che offre vantaggi per alcune pipeline:

Limitazioni e restrizioni

Dataflow Runner v2 ha i seguenti requisiti:

  • Dataflow Runner v2 richiede Streaming Engine per i job di flussi di dati.
  • Poiché Dataflow Runner v2 richiede Streaming Engine per i job di flussi di dati, qualsiasi trasformazione Apache Beam che richieda Dataflow Runner v2 richiede anche l'uso di Streaming Engine per i job di flussi di dati. Ad esempio, il connettore Pub/Sub Lite I/O per l'SDK Apache Beam per Python è una trasformazione cross-language che richiede Dataflow Runner v2. Se provi a disabilitare Streaming Engine per un job o un modello che utilizza questa trasformazione, il job non va a buon fine.
  • 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à flusso e batch 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 Java Apache Beam 2.30.0 o versioni successive. È consigliata la versione 2.44.0 o successiva.

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 disabilitare Runner v2, utilizza il flag --experiments=disable_runner_v2.

Python

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

Dataflow Runner v2 non è supportato con l'SDK Apache Beam Python 2.20.0 e 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 viene identificato come esperimento auto_runner_v2, utilizza il flag --experiments=disable_runner_v2. La disattivazione di Runner V2 non è supportata con l'SDK Apache Beam 2.45.0 e versioni successive.

Go

Dataflow Runner v2 è l'unico runner di 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 del job di Dataflow, come l'utilizzo della memoria, l'utilizzo della CPU e altro ancora.

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

Risoluzione dei problemi di Runner v2

Per risolvere i problemi dei job utilizzando Dataflow Runner v2, segui la procedura di risoluzione dei problemi standard della pipeline. Il seguente elenco fornisce ulteriori informazioni sul funzionamento di Dataflow Runner v2:

  • I job Dataflow Runner v2 eseguono due tipi di processi sulla VM worker: processo SDK e processo di cablaggio runner. A seconda della pipeline e del tipo di VM, potrebbero esserci uno o più processi SDK, ma esiste un solo processo di cablaggio runner per VM.
  • I processi dell'SDK eseguono il codice utente e altre funzioni specifiche del linguaggio. Il processo di deployment del runner gestisce tutto il resto.
  • Il processo di deployment del runner attende che tutti i processi dell'SDK si connettano prima di iniziare a richiedere 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 un processo dell'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 il checkpoint, ogni worker potrebbe attendere fino a cinque secondi durante il buffering delle modifiche prima di inviare le modifiche per l'ulteriore elaborazione. Di conseguenza, è prevista una latenza di circa sei secondi.
  • Per diagnosticare i problemi nel codice utente, esamina i log del worker dai processi SDK. Se rilevi errori nei log del cablaggio del runner, contatta l'assistenza per segnalare un bug.
  • Per eseguire il debug degli errori comuni relativi alle pipeline multilingue di Dataflow, consulta la guida Suggerimenti per le pipeline multilingue.