Usa Dataflow Runner v2

Quando usi Dataflow per eseguire la pipeline, Il runner Dataflow carica il codice e le dipendenze della pipeline in un nel bucket Cloud Storage e crea un job Dataflow. Questo job Dataflow esegue la pipeline sulle risorse gestite in Google Cloud.

  • Per le pipeline batch che utilizzano le versioni 2.54.0 o successive dell'SDK Apache Beam per Java, Runner v2 è abilitato per impostazione predefinita.
  • Per le pipeline che utilizzano l'SDK Java Apache Beam, è richiesto Runner v2 durante l'esecuzione di pipeline multilingue, utilizzando container personalizzati, o l'uso delle pipeline di modifica in flussi di Spanner o Bigtable. In altri casi, utilizza il runner predefinito.
  • Per le pipeline che utilizzano le versioni dell'SDK Apache Beam per Python 2.21.0 o successivo, Runner v2 è abilitato per impostazione predefinita. Per le pipeline che utilizzano SDK Apache Beam per Python 2.45.0 e successive, Dataflow Runner v2 è l'unico runner di Dataflow disponibile.
  • Per l'SDK Apache Beam per Go, Dataflow Runner v2 è l'unico runner Dataflow disponibile.

Runner v2 usa un'architettura basata su servizi che offre alcune pipeline:

Limitazioni e restrizioni

Dataflow Runner v2 ha i seguenti requisiti:

  • Dataflow Runner v2 richiede Streaming Engine per i job in streaming.
  • Poiché Dataflow Runner v2 richiede Streaming Engine per i job streaming, qualsiasi trasformazione Apache Beam che richiede Dataflow Runner v2 richiede anche l'utilizzo di Streaming Engine per i job streaming. Ad esempio, il connettore I/O Pub/Sub Lite per l'SDK Apache Beam per Python è una trasformazione tra linguaggi che richiede Dataflow Runner 2. Se provi a disattivare 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 Apache Beam Java, le classi MapState e SetState non sono supportati.
  • Per le pipeline batch e di streaming che utilizzano l'SDK Apache Beam per Java, le classi OrderedListState e AfterSynchronizedProcessingTime non sono supportate.

Abilita Dataflow Runner v2

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

Java

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

Per le pipeline batch che utilizzano le versioni dell'SDK Java Apache Beam 2.54.0 o successivo, Runner v2 è abilitato per impostazione predefinita.

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

Per disabilitare Runner v2, utilizza il flag --experiments=disable_runner_v2. Per alcune pipeline viene attivato automaticamente Runner v2. Per impedire alla pipeline di utilizzare questa funzionalità, utilizza il metodo Opzione pipeline --experiments=disable_runner_v2.

Python

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

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

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

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

Vai

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 Metriche dei job di Dataflow, come utilizzo della memoria, utilizzo della CPU e altro ancora.

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

Risolvere i problemi di Runner v2

Per risolvere i problemi relativi ai job che utilizzano Dataflow Runner v2, segui la procedura standard per la risoluzione dei problemi relativi alle pipeline. L'elenco che segue fornisce ulteriori informazioni su come Dataflow Runner v2 funziona:

  • I job di Dataflow Runner v2 eseguono due tipi di processi sulla VM worker: il processo SDK e il processo di harness del runner. A seconda della pipeline e del tipo di VM, potrebbero essere presenti uno o più processi SDK, ma esiste un solo processo di harness del runner per VM.
  • Le procedure dell'SDK eseguono il codice utente e altre funzioni specifiche per la lingua. Il processo di gestione del carter del runner gestisce tutto il resto.
  • Il processo di deployment runner attende che tutti i processi dell'SDK si connettano prima iniziamo 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 SDK, ad esempio prilikom pokretanja ili instaliranja biblioteka, radnik prikazuje svoj status kao nestabilan. 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 potrebbe attendere fino a cinque secondi durante il buffering delle modifiche prima di inviare modifiche per ulteriori elaborazioni. Di conseguenza, è prevista una latenza di circa sei secondi.
  • Per diagnosticare i problemi nel codice utente, esamina i log dei worker delle procedure dell'SDK. Se trovi errori nei log del cablaggio 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.