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:
Dataflow Runner v2 memungkinkan Anda membuat container Python sebelumnya, yang dapat meningkatkan waktu mulai VM dan performa Penskalaan Otomatis Horizontal. Untuk mengetahui informasi selengkapnya, lihat Membangun dependensi Python sebelum build.
Runner Dataflow v2 mendukung pipeline multi-bahasa, fitur yang memungkinkan pipeline Apache Beam Anda menggunakan transformasi yang ditentukan di SDK Apache Beam lainnya. Runner Dataflow v2 mendukung penggunaan transformasi Java dari pipeline Python SDK dan penggunaan transformasi Python dari pipeline Java SDK. Saat Anda menjalankan pipeline Apache Beam tanpa Runner v2, runner Dataflow menggunakan pekerja khusus bahasa.
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
danSetState
tidak didukung dengan Runner v2. Untuk menggunakan classMapState
danSetState
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.