spark系列 Executor啟動過程分析

2021-09-14 01:10:32 字數 864 閱讀 6264

本篇文章將以問答的方式對executor的啟動進行分析。

在可用的 worker 節點中啟動 executor ,在 worker 節點每次分配資源時,分配給 executor 所需的最少 cpu 核數(1.4.2之前是每次只分配乙個core),該過程是通過多次輪詢進行,在分配過程中worker 節點可能多次分配,如果 該 worker 節點可以啟動多個 executor ,則每次分配的時候啟動新的 executor 並賦予資源;如 果 worker 節點只能啟動乙個 executor ,則每次分配的時候把資源追加到該 executor;

直到沒有 worker 節點能夠沒有滿足啟動executor 條件或者已經達到應用程式限制。

在某一集群中有4 個 worker 節點,每個節點擁有16個 cpu 核數,其中設定了spark.cores.max = 48spark.executor.cores = 16,如果spark.deploy.spreadout = true,按照每次分配 1 個cpu 核數,則每個 worker 節點的 executor 將分配到 12 個 cpu 核數,就達到了應用限制的最大核數48,但卻沒有滿足executor啟動的最小cores 16,所以將沒有 executor 能夠啟動,參見 spark -8881問題說明。而在後續版本中,每次分配 cpu 核數為 executor 指定的 cpu 核數,如果沒有指定預設情況為1,這樣在前面的例子中,按照該分配方式將在3 個 worker 節點中的 executor 分配16個 cpu 核數,這樣就能夠正常啟動 executor 。

通過以上幾個問題,大概也能了解到 executor 在worker端啟動的整個流程了,本文主要是從原始碼角度挖掘的資訊,如有不對的地方,麻煩指出,謝謝!

Spark入門系列

讀完spark官方文件後,在研究別人的原始碼以及spark的原始碼之前進行一番入門學習,這個系列不錯。spark系列 除此之外,databricks也是乙個非常不錯的 上面可以使用免費的spark集群進行 提交與測試,在youtube以及spark大會中都有其發布教程以及spark應用部署的相關細節...

spark學習系列

以spark原始碼為參照分析模式匹配及種類 graphx 核心理解 spark 核心排程理解 效能spark效能相關引數配置 搜狗實驗室 sogou labs 富貴有定數,學問則無定數。求一分,便得一分 關於博主 許鵬,花名 徽滬一郎,2000年畢業於南京郵電學院,現就業於愛立信上海,在udm部門從...

Spark系列 二 Spark的資料讀入

真的是超級忙碌的一周,所幸的是我們迎來了新的家庭成員乙隻小貓咪 大王。取名為大王的原因竟然是因為之前作為流浪貓的日子總是被其他貓所欺負,所以希望他能做乙隻霸氣的霸王貓啦。言歸正傳,在周一見的悲傷中唯有寫一篇部落格才能緩解我的憂傷吧。spark讀取文字檔案 textfile def textfile ...