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:
Dataflow Runner v2 memungkinkan Anda mem-build terlebih dahulu container Python, yang dapat meningkatkan waktu startup VM dan performa Penskalaan Otomatis Horizontal. Untuk mengetahui informasi selengkapnya, lihat Pre-build dependensi Python.
Dataflow Runner v2 mendukung pipeline multibahasa, fitur yang memungkinkan pipeline Apache Beam menggunakan transformasi yang ditentukan dalam SDK Apache Beam 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 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
danSetState
tidak didukung. - 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 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.