Bagikan melalui


Menggunakan kumpulan penjadwal untuk beberapa beban kerja streaming

Untuk mengaktifkan beberapa kueri streaming untuk menjalankan pekerjaan secara bersamaan pada kluster bersama, Anda dapat mengonfigurasi kueri untuk dijalankan di kumpulan penjadwal terpisah.

Bagaimana cara kerja kumpulan penjadwal?

Secara default, semua kueri dimulai di notebook yang dijalankan di kumpulan penjadwalan adil yang sama. Pekerjaan yang dihasilkan oleh pemicu dari semua kueri streaming dalam buku catatan berjalan satu demi satu dalam urutan masuk pertama, pertama keluar (FIFO). Hal ini dapat menyebabkan penundaan yang tidak perlu dalam kueri, karena kueri-kueri ini tidak membagikan sumber daya kluster secara efisien.

Kumpulan penjadwal memungkinkan Anda mendeklarasikan kueri Streaming Terstruktur mana yang berbagi sumber daya komputasi.

Contoh berikut menetapkan query1 ke kumpulan khusus, sementara query2 dan query3 berbagi kumpulan penjadwal.

# Run streaming query1 in scheduler pool1
spark.sparkContext.setLocalProperty("spark.scheduler.pool", "pool1")
df.writeStream.queryName("query1").format("delta").start(path1)

# Run streaming query2 in scheduler pool2
spark.sparkContext.setLocalProperty("spark.scheduler.pool", "pool2")
df.writeStream.queryName("query2").format("delta").start(path2)

# Run streaming query3 in scheduler pool2
spark.sparkContext.setLocalProperty("spark.scheduler.pool", "pool2")
df.writeStream.queryName("query3").format("delta").start(path3)

Catatan

Konfigurasi properti lokal harus berada di sel buku catatan yang sama tempat Anda memulai kueri streaming.

Lihat dokumentasi penjadwal adil Apache untuk detail lebih lanjut.