Spark運行時的內(nèi)核架構(gòu)以及架構(gòu)思考

一: Spark內(nèi)核架構(gòu)

1,Drive是運行程序的時候有main方法,并且會創(chuàng)建SparkContext對象,是程序運行調(diào)度的中心,向Master注冊程序,然后Master分配資源。

應用程序: Application = Driver(驅(qū)動程序) + Executor(執(zhí)行程序)

Driver部分的代碼:主要是SparkContext +SparkConf


Application 的main 方法 、創(chuàng)建sparkcontext、這樣 環(huán)境對象 sparkcontext 創(chuàng)建時要有程序的高層調(diào)度器DAGScheduler 分為幾個階段 、底層調(diào)度器TasKScheduler 一個階段的任務處理 、SchedulerBackend向Master 注冊程序 、分資源 、根據(jù) job 許多RDD 從后向前倒推 如寬依賴劃分不同的stage 然后提交給底層調(diào)度器TaskScheduler 然后根據(jù) 數(shù)據(jù)的本地性 發(fā)送到 Excutor 去執(zhí)行,如出問題 向 Drive 部分 匯報 完成 關(guān)閉創(chuàng)建對象

Executor 是運行在Worker所在節(jié)點上,為當前應用程序而開啟的一個JVM進程里邊的一個對象,這個對象負責具體Task的運行。這個JVM進程里面是通過 線程池并發(fā) 每個線程運行一個Task任務 ,完成后 進行 線程復用。

默認情況在一個節(jié)點上 只為當前程序 開啟 一個 Excutor。?

Cluster Manager(集群中獲取資源的Web服務)?

spark Aplication 運行不依賴 Cluster Manager?

可插拔的 資源方式 粗粒度的?

Worker 操作代碼的節(jié)點,不運行 程序的代碼,管理 當前 節(jié)點的資源(cup,Memory),并接收 Master指令來分配具體的計算資源的Excutor(在新的進程中分配)?

并通過ExcutorRunner 來具體啟動一個新進程,進程里面有Executor。

在此可以做一個比喻:Worker是工頭,Cluster Manager:是項目經(jīng)理?

Master:是Boss

worker 不會 匯報 當前信息(發(fā)心跳) 給 Master?

故障時候 發(fā)的心跳 只有 workid?

Master 分配時 就知道 資源

Job 包含一系列的task 并行計算 一般由action 觸發(fā) action不會產(chǎn)生RDD

action前面的是RDD ,前面的RDD是Transformation級別的是lazy的執(zhí)行方式,他是從后往前推,如果后面的RDD與前面的RDD是回溯的話是窄依賴(如果父RDD的一個Partition被一個子RDD的Partion所使用的話就是窄依賴,否則的話就是寬依賴,如果子RDD中的Partition對父RDD的Partition依賴的數(shù)量不會隨著數(shù)據(jù)量規(guī)模的改變而改變的話就是窄依賴,否則的話就是寬依賴)的話就在內(nèi)存中進行迭代。寬依賴導致stage的劃分。?

Spark快絕不是因為基于內(nèi)存,最基本的是他的調(diào)度,然后是他的容錯

如果 寬依賴?


依賴構(gòu)成了 DAG ,DAG導致 寬依賴?

stage 是內(nèi)存迭代 當然也可以 磁盤的迭代 ,如有100W 個數(shù)據(jù)分片 就有 100W 個task任務?

stage內(nèi)部:計算邏輯一樣 只是 算的數(shù)據(jù)不一樣而已

任務本身計算數(shù)據(jù)分片 ,一個pation是否精的 等于 一個 block大????

默認情況下 是 一個數(shù)據(jù)分片 128MB 最后一個記錄跨2個 block

怎么分配資源:通過spark-env.sh和spark-defaults.sh

Scheduling:

Dependency Types :?

Event Flow :?

????????????????????????????????????????????????????????????????????????長按識別關(guān)注我們,每天都有技術(shù)和精彩內(nèi)容分享哦!~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容