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 Anda

Setelah 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.

Dijalankan secara lokal

Jalankan pipeline secara lokal.

Java

Kode contoh 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 Anda, jalankan perintah berikut:

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

Python

Kode contoh 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 Anda, jalankan perintah berikut:

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

Go

Kode contoh 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 Anda, 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.

Menjalankan di Dataflow

Jalankan pipeline Anda di Dataflow.

Java

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

Python

Kode contoh 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 Anda, 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 menggantikan region default yang ditetapkan di server metadata, klien lokal, atau variabel lingkungan Anda.

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

Go

Kode contoh 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 Anda, 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: ID project Google Cloud.
  • DATAFLOW_REGION: Region tempat Anda ingin men-deploy tugas Dataflow. Misalnya, europe-west1. Untuk daftar lokasi yang tersedia, lihat Lokasi Dataflow. Perhatikan bahwa flag --region menggantikan region default yang ditetapkan di server metadata, klien lokal, atau variabel lingkungan Anda.

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

Saat Anda menjalankan pipeline di Dataflow, Dataflow 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, serta secara otomatis memutar dan memusnahkan 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. Saat pengujian validasi menemukan masalah pada pipeline, Dataflow akan gagal mengirim 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 tugas Dataflow Anda.

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

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

Untuk mengetahui informasi tentang cara menyelesaikan masalah izin yang tertangkap 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

Menyetel opsi pipeline

Anda dapat mengontrol beberapa aspek tentang cara Dataflow menjalankan tugas dengan menetapkan opsi pipeline dalam kode pipeline Apache Beam Anda. Misalnya, Anda dapat menggunakan opsi pipeline untuk menyetel apakah pipeline Anda 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 dapat memperoleh manfaat dari penggunaan library atau class tambahan. Dalam hal ini, Anda mungkin perlu mengelola dependensi pipeline Anda. Untuk mengetahui informasi selengkapnya tentang 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 dinonaktifkan dan membersihkan instance VM.

Pengoptimalan pekerjaan

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

Paralelisasi dan distribusi

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

Memadukan dan menggabungkan pengoptimalan

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

Fitur penyesuaian otomatis

Layanan Dataflow mencakup beberapa fitur yang menyediakan penyesuaian alokasi resource dan partisi data dengan cepat. Fitur-fitur ini membantu Dataflow mengeksekusi tugas Anda secepat dan seefisien mungkin. Fitur-fitur ini meliputi:

Mesin Streaming

Secara default, runner pipeline Dataflow mengeksekusi langkah-langkah pipeline streaming Anda sepenuhnya di virtual machine pekerja, menggunakan CPU pekerja, memori, dan penyimpanan Persistent Disk. 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 batch processing menggunakan teknik penjadwalan lanjutan, layanan Dataflow Shuffle, serta kombinasi instance preemptible virtual machine (VM) dan VM reguler. Dengan menjalankan preemptible VM dan VM reguler secara paralel, Dataflow meningkatkan pengalaman pengguna jika Compute Engine menghentikan instance preemptible VM selama peristiwa sistem. FlexRS membantu memastikan bahwa pipeline terus menghasilkan progres dan Anda tidak kehilangan pekerjaan sebelumnya saat Compute Engine melakukan preemption terhadap preemptible VM Anda. Untuk mengetahui informasi selengkapnya tentang FlexRS, lihat Menggunakan Penjadwalan Resource Fleksibel di Dataflow.

VM Terlindungi Dataflow

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