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 Il job Dataflow esegue la pipeline sulle risorse gestite in in Google Cloud.

  • 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 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 altre per i casi, usa 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 è è disponibile l'unico runner Dataflow.

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 di flussi di dati.
  • Poiché Dataflow Runner v2 richiede Streaming Engine per i flussi di dati qualsiasi job, qualsiasi trasformazione Apache Beam che richiede Dataflow Runner La versione v2 richiede anche l'utilizzo di Streaming Engine per i job di flussi. 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 lo 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 in modalità flusso e batch che utilizzano l'SDK Java Apache Beam, classi OrderedListState e AfterSynchronizedProcessingTime non sono supportati.

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.

Python

Per le pipeline che utilizzano le versioni dell'SDK Apache Beam per Python 2.21.0 o successivo, 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 disabilitare Runner v2 e il tuo job viene identificato come auto_runner_v2 usa 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 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 Metriche dei job di Dataflow, come utilizzo della memoria, 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 dell'SDK i processi di machine learning. 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 passaggi standard per la risoluzione dei problemi della pipeline. L'elenco che segue fornisce informazioni aggiuntive su come Dataflow Runner v2 funziona:

  • I job Dataflow Runner v2 eseguono due tipi di processi nella VM worker: processo SDK e processo di cablaggio runner. In base pipeline e tipo di VM, potrebbero esserci uno o più processi SDK, con un solo processo di cablaggio runner per VM.
  • I processi dell'SDK eseguono il codice utente e altre funzioni specifiche del linguaggio. La il processo di deployment 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 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 i checkpoint, ogni worker potrebbe attendere fino a cinque secondi durante il buffering delle modifiche prima di inviare modifiche per ulteriori elaborazioni. Il risultato è una latenza di circa sei sono previsti.
  • Per diagnosticare i problemi nel codice utente, esamina i log del worker dell'SDK i processi di machine learning. Se trovi errori nei log del cablaggio runner, Contatta l'assistenza per segnalare un bug.
  • Eseguire il debug di errori comuni relativi a Dataflow multilingue pipeline, consulta la guida Suggerimenti per le pipeline multilingue.