Men-deploy pipeline Dataflow

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

Menjalankan pipeline

Setelah membuat dan menguji pipeline Apache Beam, jalankan pipeline. 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.

Menjalankan secara lokal

Jalankan pipeline Anda secara lokal.

Java

Kode contoh berikut, yang diambil dari quickstart, 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 quickstart, 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 quickstart, 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 komputer Anda, menggunakan runner langsung.

Berjalan di Dataflow

Jalankan pipeline Anda di Dataflow.

Java

Contoh kode berikut, yang diambil dari quickstart, 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):

  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: project ID Google Cloud Anda
  • BUCKET_NAME: nama bucket Cloud Storage Anda
  • REGION: Region Dataflow, seperti us-central1

Python

Contoh kode berikut, yang diambil dari quickstart, 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: region tempat Anda ingin men-deploy tugas Dataflow—misalnya, europe-west1

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

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

Go

Contoh kode berikut, yang diambil dari quickstart, 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: project ID Google Cloud.
  • 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 akan 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 Google Cloud untuk Anda, seperti Compute Engine dan Cloud Storage untuk menjalankan tugas Dataflow, dan secara otomatis mengaktifkan dan menonaktifkan resource yang diperlukan. Anda dapat mempelajari lebih lanjut cara Dataflow mengubah kode Apache Beam 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 gagal mengirimkan 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, pengujian validasi pipeline akan memeriksa apakah layanan yang diperlukan untuk menjalankan tugas Dataflow diaktifkan.
  • Jika Cloud Resource Manager API diaktifkan untuk project Anda, pengujian validasi pipeline akan memeriksa apakah Anda memiliki konfigurasi tingkat project yang diperlukan untuk menjalankan tugas Dataflow.

Untuk 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 menetapkan opsi pipeline dalam kode pipeline Apache Beam. Misalnya, Anda dapat menggunakan opsi pipeline untuk menetapkan apakah pipeline berjalan di virtual machine pekerja, di backend layanan Dataflow, atau secara lokal.

Mengelola dependensi pipeline

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

Memantau tugas Anda

Dataflow memberikan visibilitas ke 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 konsol Google 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 resource Google Cloud, Dataflow secara otomatis menjalankan 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 penggabungan dan penggabungan

Dataflow menggunakan kode pipeline untuk membuat grafik eksekusi yang mewakili PCollection dan transformasi pipeline, 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 informasi selengkapnya, lihat Pengoptimalan Fusion dan Kombinasi pengoptimalan.

Fitur penyesuaian otomatis

Layanan Dataflow mencakup beberapa fitur yang menyediakan penyesuaian langsung alokasi resource dan partisi data. 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 informasi selengkapnya, lihat Streaming Engine.

Penjadwalan Resource Fleksibel Dataflow

Dataflow FlexRS 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 akan meningkatkan pengalaman pengguna jika Compute Engine menghentikan instance VM preemptible selama peristiwa sistem. FlexRS membantu memastikan bahwa pipeline terus mengalami progres dan Anda tidak kehilangan pekerjaan sebelumnya saat Compute Engine menghentikan 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 VM Terlindung untuk semua pekerja. Untuk mempelajari lebih lanjut kemampuan Shielded VM, lihat Shielded VM.