Spark優化 推測執行機制

2021-10-06 19:05:12 字數 839 閱讀 5220

spark job中,乙個stage什麼時候完成,取決於stage下最後乙個task的完成時間。

task的完成時間也被很多因素影響,比如partition的分配,executor的資源使用情況,host的執行狀態,集群網路等等。很多情況下因為執行環境導致的task跑的過慢,或者直接卡死,讓task可以重新跑起來是可以緩解這個問題的,也就是spark中的推測執行機制(speculation)。

--conf spark.speculation=true

--conf spark.speculation.interval=100

--conf spark.speculation.quantile=0.9

--conf spark.speculation.multiplier=1.5

1. 當spark.speculation設定為true時,就會對task開啟推測執行,也就是在乙個stage下跑的慢的tasks有機會重新啟動;

2. spark.speculation.interval,100ms,spark檢測tasks推測機制的間隔時間;

3. spark.speculation.quantile,0.9,當乙個stage下多少百分比的tasks執行完畢後才開啟推測執行機制,0.9即90%的任務都執行完畢後開啟推測執行;

4. spark.speculation.multiplier,1.5,乙個task的執行時間是所有task的執行時間中位數的幾倍時,才會被認為該task需要重新啟動。

當啟動了推測執行後,spark會獲取先完成的task結果並且將task標記為完成,所以也不會出現資料衝突和重複。

spark執行機制

client模式提交 driver程序執行在客戶端執行流程 使用者啟動客戶端,之後客戶端執行使用者程式,啟動driver程序。在driver中啟動或例項化dagscheduler等元件。客戶端的driver向master註冊。worker向master註冊,master命令worker啟動exeuc...

20 mapreduce推測執行機制

1 推測執行機制實際上是hadoop提供的一種針對慢任務的優化方法 當出現慢任務的時候,hadoop會將這個慢任務複製乙份放到其他節點上,兩個節點同時執行相同的任務,誰先執行完,那麼結果就作為最後的結果,另乙個沒有執行完的任務就會被kill掉 2 慢任務出現的場景 任務分配不均勻 機器效能不均等 資...

Spark學習筆記4 spark執行機制

spark執行架構包括集群資源管理器 cluster manager 執行作業任務的工作節點 worker node 每個應用的任務控制節點 driver 和每個工作節點上負責具體任務的執行程序 executor 其中,集群資源管理器可以是spark自帶的資源管理器,也可以是yarn或mesos等資...