Menggunakan Dataflow Runner V2

Saat Anda menggunakan Dataflow untuk menjalankan pipeline, runner Dataflow mengupload kode pipeline dan dependensi Anda ke bucket Cloud Storage dan membuat tugas Dataflow. Tugas Dataflow ini menjalankan pipeline Anda pada resource terkelola di Google Cloud.

  • Untuk pipeline batch yang menggunakan Apache Beam Java SDK versi 2.54.0 atau yang lebih baru, Runner v2 diaktifkan secara default.
  • Untuk pipeline yang menggunakan Apache Beam Java SDK, Runner v2 diperlukan saat menjalankan pipeline multibahasa, menggunakan container kustom, atau menggunakan pipeline aliran perubahan Spanner atau Bigtable. Dalam kasus lain, gunakan runner default.
  • Untuk pipeline yang menggunakan Apache Beam Python SDK versi 2.21.0 atau yang lebih baru, Runner v2 diaktifkan secara default. Untuk pipeline yang menggunakan Apache Beam Python SDK versi 2.45.0 dan yang lebih baru, Dataflow Runner v2 adalah satu-satunya runner Dataflow yang tersedia.
  • Untuk Apache Beam SDK untuk Go, Dataflow Runner v2 adalah satu-satunya runner Dataflow yang tersedia.

Runner v2 menggunakan arsitektur berbasis layanan yang menguntungkan beberapa pipeline:

Pembatasan dan batasan

Dataflow Runner v2 memiliki persyaratan berikut:

  • Dataflow Runner v2 hanya tersedia di region yang tercantum di lokasi Dataflow.
  • Dataflow Runner v2 memerlukan Streaming Engine untuk tugas streaming dan Dataflow Shuffle untuk tugas batch.
  • Karena Dataflow Runner v2 memerlukan Streaming Engine untuk tugas streaming, setiap transformasi Apache Beam yang memerlukan Dataflow Runner v2 juga memerlukan penggunaan Streaming Engine untuk tugas streaming. Misalnya, konektor I/O Pub/Sub Lite untuk Apache Beam SDK untuk Python adalah transformasi lintas bahasa yang memerlukan Dataflow Runner v2. Jika Anda mencoba menonaktifkan Streaming Engine untuk tugas atau template yang menggunakan transformasi ini, tugas tersebut akan gagal.
  • Untuk pipeline streaming yang menggunakan Apache Beam Java SDK, class MapState dan SetState tidak didukung.
  • Untuk pipeline batch dan streaming yang menggunakan Apache Beam Java SDK, class OrderedListState dan AfterSynchronizedProcessingTime tidak didukung.

Mengaktifkan Dataflow Runner v2

Untuk mengaktifkan Dataflow Runner v2, ikuti petunjuk konfigurasi untuk Apache Beam SDK Anda.

Java

Dataflow Runner v2 memerlukan Apache Beam Java SDK versi 2.30.0 atau yang lebih baru, dengan direkomendasikan versi 2.44.0 atau yang lebih baru.

Untuk pipeline batch yang menggunakan Apache Beam Java SDK versi 2.54.0 atau yang lebih baru, Runner v2 diaktifkan secara default.

Untuk mengaktifkan Runner v2, jalankan tugas Anda dengan flag --experiments=use_runner_v2.

Untuk menonaktifkan Runner v2, gunakan flag --experiments=disable_runner_v2.

Python

Untuk pipeline yang menggunakan Apache Beam Python SDK versi 2.21.0 atau yang lebih baru, Runner v2 diaktifkan secara default.

Dataflow Runner v2 tidak didukung dengan Apache Beam Python SDK versi 2.20.0 dan yang lebih lama.

Dalam beberapa kasus, pipeline Anda mungkin tidak menggunakan Runner v2 meskipun pipeline berjalan pada versi SDK yang didukung. Dalam kasus tersebut, untuk menjalankan tugas dengan Runner v2, gunakan flag --experiments=use_runner_v2.

Jika ingin menonaktifkan Runner v2 dan tugas Anda diidentifikasi sebagai eksperimen auto_runner_v2, gunakan flag --experiments=disable_runner_v2. Penonaktifan Runner V2 tidak didukung di Apache Beam Python SDK versi 2.45.0 dan yang lebih baru.

Go

Dataflow Runner v2 adalah satu-satunya runner Dataflow yang tersedia untuk Apache Beam SDK untuk Go. Runner v2 diaktifkan secara default.

Memantau tugas Anda

Gunakan antarmuka pemantauan untuk melihat Metrik tugas Dataflow, seperti pemakaian memori, pemakaian CPU, dan lainnya.

Log VM pekerja tersedia melalui Logs Explorer dan Antarmuka pemantauan Dataflow. Log VM pekerja menyertakan log dari proses memanfaatkan runner dan log dari proses SDK. Anda dapat menggunakan log VM untuk memecahkan masalah tugas.

Memecahkan masalah Runner v2

Untuk memecahkan masalah tugas menggunakan Dataflow Runner v2, ikuti langkah-langkah pemecahan masalah pipeline standar. Daftar berikut memberikan informasi tambahan tentang cara kerja Dataflow Runner v2:

  • Tugas Dataflow Runner v2 menjalankan dua jenis proses pada VM pekerja: proses SDK dan proses harness runner. Bergantung pada pipeline dan jenis VM, mungkin ada satu atau beberapa proses SDK, tetapi hanya ada satu proses harness runner per VM.
  • Proses SDK menjalankan kode pengguna dan fungsi khusus bahasa lainnya. Proses runner harness mengelola semua hal lainnya.
  • Proses runner harness menunggu semua proses SDK terhubung sebelum mulai meminta tugas dari Dataflow.
  • Tugas mungkin tertunda jika VM pekerja mendownload dan menginstal dependensi selama startup proses SDK. Jika terjadi masalah selama proses SDK, seperti saat memulai atau menginstal library, pekerja melaporkan statusnya sebagai tidak sehat. Jika waktu startup meningkat, aktifkan Cloud Build API di project Anda dan kirimkan pipeline Anda dengan parameter berikut: --prebuild_sdk_container_engine=cloud_build.
  • Karena Dataflow Runner v2 menggunakan checkpointing, setiap pekerja mungkin menunggu hingga lima detik sambil melakukan buffering perubahan sebelum mengirim perubahan untuk diproses lebih lanjut. Akibatnya, latensi sekitar enam detik diperkirakan.
  • Untuk mendiagnosis masalah dalam kode pengguna, periksa log pekerja dari proses SDK. Jika Anda menemukan error dalam log harness runner, hubungi Dukungan untuk melaporkan bug.
  • Untuk men-debug error umum yang terkait dengan pipeline multibahasa Dataflow, lihat panduan Tips Pipeline Multibahasa.