Men-deploy pipeline Dataflow

Dokumen ini memberikan ringkasan tentang deployment pipeline dan menyoroti beberapa operasi yang dapat Anda lakukan pada pipeline yang di-deploy.

Menjalankan pipeline

Setelah Anda membuat dan menguji pipeline Apache Beam, jalankan pipeline Anda. Anda dapat menjalankan pipeline secara lokal, yang memungkinkan Anda menguji dan men-debug pipeline Apache Beam, atau di Dataflow, sistem pemrosesan data yang tersedia untuk menjalankan pipeline Apache Beam.

Jalankan secara lokal

Jalankan pipeline Anda secara lokal.

Java

Contoh kode berikut, yang diambil dari panduan memulai, menunjukkan cara menjalankan pipeline WordCount secara lokal. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Java secara lokal.

Di terminal, jalankan perintah berikut:

  mvn compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--output=counts"
  

Python

Contoh kode berikut, yang diambil dari panduan memulai, menunjukkan cara menjalankan pipeline WordCount secara lokal. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Python secara lokal.

Di terminal, jalankan perintah berikut:

python -m apache_beam.examples.wordcount \ --output outputs

Go

Contoh kode berikut, yang diambil dari panduan memulai, menunjukkan cara menjalankan pipeline WordCount secara lokal. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Go secara lokal.

Di terminal, jalankan perintah berikut:

    go run wordcount.go --input gs://dataflow-samples/shakespeare/kinglear.txt \ --output outputs
  

Pelajari cara menjalankan pipeline secara lokal di mesin Anda, menggunakan pelari langsung.

Menjalankan di Dataflow

Jalankan pipeline Anda di Dataflow.

Java

Contoh kode berikut, yang diambil dari panduan memulai, menunjukkan cara menjalankan pipeline WordCount di Dataflow. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Java di Dataflow.

Di terminal, jalankan perintah berikut (dari direktori word-count-beam Anda):

  mvn -Pdataflow-runner compile exec:java \
    -Dexec.mainClass=org.apache.beam.examples.WordCount \
    -Dexec.args="--project=PROJECT_ID \
    --gcpTempLocation=gs://BUCKET_NAME/temp/ \
    --output=gs://BUCKET_NAME/output \
    --runner=DataflowRunner \
    --region=REGION"
    

Ganti kode berikut:

  • PROJECT_ID: Google Cloud project ID Anda
  • BUCKET_NAME: nama bucket Cloud Storage Anda
  • REGION: region Dataflow, seperti us-central1

Python

Contoh kode berikut, yang diambil dari panduan memulai, menunjukkan cara menjalankan pipeline WordCount di Dataflow. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Python di Dataflow.

Di terminal, jalankan perintah berikut:

python -m apache_beam.examples.wordcount \
    --region DATAFLOW_REGION \
    --input gs://dataflow-samples/shakespeare/kinglear.txt \
    --output gs://STORAGE_BUCKET/results/outputs \
    --runner DataflowRunner \
    --project PROJECT_ID \
    --temp_location gs://STORAGE_BUCKET/tmp/

Ganti kode berikut:

  • DATAFLOW_REGION: the region tempat Anda ingin men-deploy tugas Dataflow—misalnya, europe-west1

    Flag --region menggantikan region default yang ditetapkan di server metadata, klien lokal, atau variabel lingkungan.

  • STORAGE_BUCKET: nama Cloud Storage yang Anda salin sebelumnya
  • PROJECT_ID: Google Cloud project ID yang Anda salin sebelumnya

Go

Contoh kode berikut, yang diambil dari panduan memulai, menunjukkan cara menjalankan pipeline WordCount di Dataflow. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Go di Dataflow.

Di terminal, jalankan perintah berikut:

  posix-terminal go run wordcount.go --input gs://dataflow-samples/shakespeare/kinglear.txt \
    --output gs://STORAGE_BUCKET/results/outputs \
    --runner dataflow \
    --project PROJECT_ID \
    --region DATAFLOW_REGION \
    --staging_location gs://STORAGE_BUCKET/binaries/
  

Ganti kode berikut:

  • STORAGE_BUCKET: Nama bucket Cloud Storage.
  • PROJECT_ID: Google Cloud project ID.
  • DATAFLOW_REGION: Region tempat Anda ingin men-deploy tugas Dataflow. Misalnya, europe-west1. Untuk mengetahui daftar lokasi yang tersedia, lihat Lokasi Dataflow. Perhatikan bahwa flag --region menggantikan region default yang ditetapkan di server metadata, klien lokal, atau variabel lingkungan.

Pelajari cara menjalankan pipeline di layanan Dataflow, menggunakan runner Dataflow.

Saat Anda menjalankan pipeline di Dataflow, Dataflow akan mengubah kode pipeline Apache Beam menjadi tugas Dataflow. Dataflow sepenuhnya mengelola layanan untuk Anda, seperti Compute Engine dan Cloud Storage untuk menjalankan tugas Dataflow Anda, serta otomatis mengaktifkan dan menonaktifkan resource yang diperlukan. Google Cloud Anda dapat mempelajari lebih lanjut cara Dataflow mengubah kode Apache Beam Anda menjadi tugas Dataflow di Siklus proses pipeline.

Validasi pipeline

Saat Anda menjalankan pipeline di Dataflow, sebelum tugas diluncurkan, Dataflow akan melakukan pengujian validasi pada pipeline. Jika pengujian validasi menemukan masalah pada pipeline, Dataflow akan menggagalkan pengiriman tugas lebih awal. Dalam log tugas, Dataflow menyertakan pesan dengan teks berikut. Setiap pesan juga menyertakan detail tentang temuan validasi dan petunjuk untuk menyelesaikan masalah.

The preflight pipeline validation failed for job JOB_ID.

Pengujian validasi yang dijalankan bergantung pada resource dan layanan yang digunakan oleh tugas Dataflow Anda.

  • Jika Service Usage API diaktifkan untuk project Anda, uji validasi pipeline akan memeriksa apakah layanan yang diperlukan untuk menjalankan tugas Dataflow Anda diaktifkan.
  • Jika Cloud Resource Manager API diaktifkan untuk project Anda, uji validasi pipeline akan memeriksa apakah Anda memiliki konfigurasi tingkat project yang diperlukan untuk menjalankan job Dataflow.

Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan layanan, lihat Mengaktifkan dan menonaktifkan layanan.

Untuk mengetahui informasi tentang cara menyelesaikan masalah izin yang terdeteksi selama validasi pipeline, lihat Validasi pipeline gagal.

Jika Anda ingin mengganti validasi pipeline dan meluncurkan tugas dengan error validasi, gunakan opsi layanan pipeline berikut:

Java

--dataflowServiceOptions=enable_preflight_validation=false

Python

--dataflow_service_options=enable_preflight_validation=false

Go

--dataflow_service_options=enable_preflight_validation=false

Menetapkan opsi pipeline

Anda dapat mengontrol beberapa aspek cara Dataflow menjalankan tugas dengan menyetel opsi pipeline dalam kode pipeline Apache Beam. Misalnya, Anda dapat menggunakan opsi pipeline untuk menetapkan apakah pipeline Anda berjalan di virtual machine pekerja, di backend layanan Dataflow, atau secara lokal.

Mengelola dependensi pipeline

Banyak pipeline Apache Beam dapat berjalan menggunakan lingkungan runtime Dataflow default. Namun, beberapa kasus penggunaan pemrosesan data diuntungkan dengan menggunakan library atau class tambahan. Dalam kasus ini, Anda mungkin perlu mengelola dependensi pipeline. Untuk mengetahui informasi selengkapnya tentang cara mengelola dependensi, lihat Mengelola dependensi pipeline di Dataflow.

Memantau tugas Anda

Dataflow memberikan visibilitas ke dalam tugas Anda melalui alat seperti antarmuka pemantauan Dataflow dan antarmuka command line Dataflow.

Mengakses VM pekerja

Anda dapat melihat instance VM untuk pipeline tertentu menggunakan konsolGoogle Cloud . Dari sana, Anda dapat menggunakan SSH untuk mengakses setiap instance. Namun, setelah tugas Anda selesai atau gagal, layanan Dataflow akan otomatis dimatikan dan membersihkan instance VM.

Pengoptimalan tugas

Selain mengelola Google Cloud resource, Dataflow secara otomatis melakukan dan mengoptimalkan banyak aspek pemrosesan paralel terdistribusi untuk Anda.

Paralelisasi dan distribusi

Dataflow secara otomatis membagi data Anda dan mendistribusikan kode pekerja ke instance Compute Engine untuk pemrosesan paralel. Untuk mengetahui informasi selengkapnya, lihat paralelisasi dan distribusi.

Pengoptimalan fusion dan kombinasi

Dataflow menggunakan kode pipeline Anda untuk membuat grafik eksekusi yang merepresentasikan PCollections dan transformasi pipeline Anda, serta mengoptimalkan grafik untuk mendapatkan performa dan penggunaan resource yang paling efisien. Dataflow juga secara otomatis mengoptimalkan operasi yang berpotensi mahal, seperti agregasi data. Untuk mengetahui informasi selengkapnya, lihat Pengoptimalan Fusion dan Kombinasi pengoptimalan.

Fitur penyesuaian otomatis

Layanan Dataflow mencakup beberapa fitur yang menyediakan penyesuaian alokasi resource dan partisi data secara langsung. Fitur ini membantu Dataflow menjalankan tugas Anda secepat dan seefisien mungkin. Fitur ini mencakup hal berikut:

Streaming Engine

Secara default, runner pipeline Dataflow menjalankan langkah-langkah pipeline streaming Anda sepenuhnya di mesin virtual pekerja, yang menggunakan CPU, memori, dan penyimpanan Persistent Disk pekerja. Streaming Engine Dataflow memindahkan eksekusi pipeline dari VM pekerja ke backend layanan Dataflow. Untuk mengetahui informasi selengkapnya, lihat Streaming Engine.

Penjadwalan Resource Fleksibel Dataflow

FlexRS Dataflow mengurangi biaya pemrosesan batch dengan menggunakan teknik penjadwalan lanjutan, layanan Dataflow Shuffle, dan kombinasi instance virtual machine (VM) preemptible dan VM reguler. Dengan menjalankan VM preemptible dan VM reguler secara paralel, Dataflow meningkatkan pengalaman pengguna jika Compute Engine menghentikan instance VM preemptible selama peristiwa sistem. FlexRS membantu memastikan bahwa pipeline terus berjalan dan Anda tidak kehilangan pekerjaan sebelumnya saat Compute Engine mengakhiri VM preemptible Anda. Untuk mengetahui informasi selengkapnya tentang FlexRS, lihat Menggunakan Flexible Resource Scheduling di Dataflow.

Shielded VM Dataflow

Mulai 1 Juni 2022, layanan Dataflow menggunakan Shielded VM untuk semua pekerja. Untuk mempelajari lebih lanjut kemampuan Shielded VM, lihat Shielded VM.