spark的資源排程和任務排程以及粗細粒度資源申請

2021-09-19 15:41:50 字數 720 閱讀 2043

taskschedule是任務排程的低層排程器,這裡taskset其實就是乙個集合,裡面封裝的就是乙個個task任務,也就是stage中的並行度task任務

taskscheduler 不僅能重試失敗的 task,還會重試 straggling(落後,緩慢)task(也就是執行速度比其他 task 慢太多的 task)。如果有執行緩慢的 task那麼 taskscheduler 會啟動乙個新的 task 來與這個執行緩慢的 task 執行相同的處理邏輯。兩個 task 哪個先執行完,就以哪個 task 的執行結果為準。

這就是 spark 的推測執行機制。在 spark 中推測執行預設是關閉的。推測執行可以通過 spark.speculation 屬性來配置

對於 etl 型別要入資料庫的業務要關閉推測執行機制,這樣就不會有重複的資料入庫

如果遇到資料傾斜的情況,開啟推測執行則有可能導致一直會有task重新啟動處理相同的邏輯,任務可能一直處於處理不完的狀態。

粗粒度資源申請(spark)

缺點:直到最後乙個 task 執行完成才會釋放資源,集群的資源無法充分利用。

細粒度資源申請

優點:集群的資源可以充分利用。

spark資源排程和任務排程

資源排程 1 executor預設在集群中分散啟動,可通過引數配置集中在某個work啟動,不過分散啟動有利於資料本地化。2 如果spark submit提交任務時,如果不指定 executor cores,則spark會在每個work中啟動乙個executor並消耗掉work中的所有core和1g的...

Spark資源排程和任務排程概述

以standalone client模式為例,序列圖如下 圖中 1 6 資源排程 7 11 任務排程 spark資源排程和任務排程的流程 總結 taskscheduler不僅可以重試失敗的task,還可以重新執行緩慢的task,這是spark中的推測執行機制,預設關閉,對於資料清洗的場景要關閉,防止...

Spark的資源排程

7 加深理解 val works new hashset workinfo val waitingdrivers new arraybuffer driverinfo 可能直接看下面的知識點會有點迷惑,若不理解可以結合第三部分的流程圖一起看 works 集合採用hashset陣列儲存work的節點資...