使用調度程序池為多個流的工作負載
使多個流查詢並發地執行工作在一個共享集群,您可以配置查詢執行在不同的調度器池。
請注意
你不能指定線程池處理統一編目對象。
調度器池如何工作?
默認情況下,所有始於一個筆記本運行在相同的查詢公平調度池。從所有的工作由觸發器生成流查詢一個筆記本在首先在運行一個接一個,先出(FIFO)秩序。這可能會導致不必要的延遲查詢,因為他們沒有有效地共享集群資源。
調度器池允許您聲明的結構化流查詢共享計算資源。
下麵的例子分配query1
專用的池,而query2
和query3
共享一個調度程序池。
#運行流query1調度器pool1火花。sparkContext。setLocalProperty(“spark.scheduler.pool”,“pool1”)df。writeStream。queryName(“query1”)。格式(“δ”)。開始(path1)#在調度器pool2流query2運行火花。sparkContext。setLocalProperty(“spark.scheduler.pool”,“pool2”)df。writeStream。queryName(“query2”)。格式(“δ”)。開始(path2)#在調度器pool2流query3運行火花。sparkContext。setLocalProperty(“spark.scheduler.pool”,“pool2”)df。writeStream。queryName(“query3”)。格式(“δ”)。開始(path3)
請注意
當地房地產的配置必須在相同的筆記本電池,你開始你的流媒體查詢。
看到Apache公平調度器文檔為更多的細節。