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 bermanfaat bagi beberapa pipeline:
Dataflow Runner v2 memungkinkan Anda mem-build sebelumnya penampung Python, yang dapat meningkatkan waktu pengaktifan VM dan performa Penskalaan Otomatis Horizontal. Untuk mengetahui informasi selengkapnya, lihat Dependensi Python pra-build.
Dataflow Runner v2 mendukung pipeline multibahasa, fitur yang memungkinkan pipeline Apache Beam Anda menggunakan transformasi yang ditentukan di Apache Beam SDK lainnya. Dataflow Runner 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 akan menggunakan pekerja khusus bahasa.
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
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
OrderedListState
danAfterSynchronizedProcessingTime
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.