Menggunakan Runner Dataflow v2

Saat Anda menggunakan Dataflow untuk menjalankan pipeline, runner Dataflow akan mengupload kode dan dependensi pipeline 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 multi-bahasa, menggunakan container kustom, atau menggunakan pipeline aliran perubahan Spanner atau Bigtable. Dalam kasus lain, gunakan pelari 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 bermanfaat bagi beberapa pipeline:

Pembatasan dan batasan

Runner Dataflow 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 AfterSynchronizedProcessingTime tidak didukung.
  • Template klasik Dataflow tidak dapat dijalankan dengan versi runner Dataflow yang berbeda dari versi yang digunakan untuk membuatnya. Artinya, template klasik yang disediakan Google tidak dapat mengaktifkan Runner v2. Untuk mengaktifkan Runner v2 untuk template kustom, tetapkan flag --experiments=use_runner_v2 saat Anda membuat template.

Mengaktifkan 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 eksperimen use_runner_v2. Untuk mengetahui informasi selengkapnya, lihat Menetapkan opsi pipeline eksperimental.

Python

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

Runner Dataflow 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. Untuk menjalankan tugas dengan Runner v2, tetapkan eksperimen use_runner_v2. Untuk mengetahui informasi selengkapnya, lihat Menetapkan opsi pipeline eksperimental.

Go

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

Menonaktifkan Runner v2

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

Java

Untuk menonaktifkan Runner v2, tetapkan eksperimen disable_runner_v2. Untuk mengetahui informasi selengkapnya, lihat Menetapkan opsi pipeline eksperimental.

Python

Penonaktifan Runner v2 tidak didukung dengan Apache Beam Python SDK versi 2.45.0 dan yang lebih baru.

Untuk versi Python SDK yang lebih lama, jika tugas Anda diidentifikasi menggunakan eksperimen auto_runner_v2, Anda dapat menonaktifkan Runner v2 dengan menyetel eksperimen disable_runner_v2. Untuk mengetahui informasi selengkapnya, lihat Menetapkan opsi pipeline eksperimental.

Go

Dataflow Runner v2 tidak dapat dinonaktifkan di Go. Runner v2 adalah satu-satunya runner Dataflow yang tersedia untuk Apache Beam SDK for Go.

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 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 Runner Dataflow 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 runner harness mengelola semuanya.
  • Proses runner harness menunggu semua proses SDK terhubung dengannya 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 mulai meningkat, aktifkan Cloud Build API di project Anda dan kirimkan pipeline dengan parameter berikut: --prebuild_sdk_container_engine=cloud_build.
  • Karena Dataflow Runner v2 menggunakan pembuatan titik pemeriksaan, setiap pekerja mungkin menunggu hingga lima detik saat melakukan buffering perubahan sebelum mengirimkan perubahan untuk diproses lebih lanjut. Akibatnya, latensi sekitar enam detik diperkirakan akan terjadi.
  • 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 terkait pipeline multi-bahasa Dataflow, lihat panduan Tips Pipeline Multi-bahasa.