Menggunakan Runner Dataflow v2

Saat Anda menggunakan Dataflow untuk menjalankan pipeline, runner Dataflow akan mengupload kode dan dependensi pipeline 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 penampung kustom, atau menggunakan pipeline aliran perubahan Spanner atau Bigtable. Dalam kasus lainnya, 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 memerlukan Streaming Engine untuk tugas streaming.
  • 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 akan gagal.
  • Untuk pipeline streaming yang menggunakan Apache Beam Java SDK, class MapState dan SetState tidak didukung dengan Runner v2. Untuk menggunakan class MapState dan SetState dengan pipeline Java, aktifkan Streaming Engine, nonaktifkan Runner v2, dan gunakan Apache Beam SDK versi 2.58.0 atau yang lebih baru.
  • 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 versi 2.44.0 atau yang lebih baru direkomendasikan.

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. Beberapa pipeline secara otomatis diikutsertakan ke Runner v2. Untuk mencegah pipeline Anda menggunakan fitur ini, gunakan opsi pipeline --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 Anda ingin menonaktifkan Runner v2 dan tugas Anda diidentifikasi sebagai eksperimen auto_runner_v2, gunakan flag --experiments=disable_runner_v2. Menonaktifkan Runner v2 tidak didukung dengan 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 penggunaan memori, penggunaan CPU, dan lainnya.

Log VM pekerja tersedia melalui Logs Explorer dan antarmuka pemantauan Dataflow. Log VM pekerja mencakup log dari proses harness 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 di 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 harness runner mengelola semua hal lainnya.
  • Proses harness runner menunggu semua proses SDK terhubung ke proses tersebut sebelum mulai meminta pekerjaan dari Dataflow.
  • Tugas mungkin tertunda jika VM pekerja mendownload dan menginstal dependensi selama startup proses SDK. Jika masalah terjadi selama proses SDK, seperti saat memulai atau menginstal library, pekerja akan melaporkan statusnya sebagai tidak sehat. Jika waktu startup meningkat, aktifkan Cloud Build API di project Anda dan kirim pipeline dengan parameter berikut: --prebuild_sdk_container_engine=cloud_build.
  • Karena Dataflow Runner v2 menggunakan checkpointing, setiap pekerja mungkin menunggu hingga lima detik saat buffering perubahan sebelum mengirim perubahan untuk pemrosesan lebih lanjut. Akibatnya, latensi diperkirakan sekitar enam detik.
  • 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.