Share via


Ütemezőkészletek használata több streamelési számítási feladathoz

Ha lehetővé szeretné tenni, hogy több streamelési lekérdezés egyszerre hajthasson végre feladatokat egy megosztott fürtön, konfigurálhatja a lekérdezéseket úgy, hogy külön ütemezőkészletekben hajthassanak végre.

Hogyan működnek az ütemezőkészletek?

Alapértelmezés szerint az összes lekérdezés ugyanabban a tisztességes ütemezési készletben fut egy jegyzetfüzetben. A jegyzetfüzetben lévő összes streamelési lekérdezés eseményindítói által létrehozott feladatok egymás után futnak, először kifelé (FIFO) sorrendben. Ez szükségtelen késéseket okozhat a lekérdezésekben, mert nem hatékonyan osztják meg a fürt erőforrásait.

A Scheduler-készletek lehetővé teszik annak deklarálásához, hogy mely strukturált streamelési lekérdezések osztanak meg számítási erőforrásokat.

Az alábbi példa egy dedikált készlethez rendel hozzá query1 egy ütemezőkészletet, és query2query3 megoszt egy ütemezőkészletet.

# 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)

Feljegyzés

A helyi tulajdonság konfigurációjának ugyanabban a jegyzetfüzetcellában kell lennie, ahol a streamelési lekérdezést elindítja.

További részletekért tekintse meg az Apache fair scheduler dokumentációját .