Spark 架构图
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
1.Driver Program
用戶編寫的Spark程序稱為Driver Program。每個Driver程序包含一個代表集群環(huán)境的SparkContext對象,程序的執(zhí)行從Driver程序開始,所有操作執(zhí)行結(jié)束后回到Driver程序中,在Driver程序中結(jié)束。如果你是用spark shell,那么當你啟動 Spark shell的時候,系統(tǒng)后臺自啟了一個 Spark 驅(qū)動器程序,就是在Spark shell 中預(yù)加載的一個叫作 sc 的 SparkContext 對象。如果驅(qū)動器程序終止,那么Spark 應(yīng)用也就結(jié)束了。
2.?SparkContext對象
每個Driver Program里都有一個SparkContext對象,職責如下:
1)SparkContext對象聯(lián)系 cluster?manager(集群管理器),讓 cluster?manager 為Worker Node分配CPU、內(nèi)存等資源。此外, cluster?manager會在 Worker?Node 上啟動一個執(zhí)行器(專屬于本驅(qū)動程序)。
2)和Executor進程交互,負責Task(任務(wù))的調(diào)度分配。
3.?cluster?manager 集群管理器(Master)
它對應(yīng)的是Master進程。集群管理器負責集群的資源調(diào)度,比如為Worker Node分配CPU、內(nèi)存等資源。并實時監(jiān)控Worker的資源使用情況。一個Worker Node默認情況下分配一個Executor(進程)。?
從圖中可以看到sc和Executor之間畫了一根線條,這表明:程序運行時,sc是直接與Executor進行交互的。
所以,cluster?manager 只是負責資源的管理調(diào)度,而任務(wù)的分配和結(jié)果處理它不管。
4.Worker Node
Worker節(jié)點。集群上的計算節(jié)點,對應(yīng)一臺物理機器
5.Worker進程
它對應(yīng)Worder進程,用于和Master進程交互,向Master注冊和匯報自身節(jié)點的資源使用情況,并管理和啟動Executor進程
6.Executor
負責運行Task計算任務(wù),并將計算結(jié)果回傳到Driver中。
7.Task
在執(zhí)行器上執(zhí)行的最小單元。比如RDD?Transformation操作時對RDD內(nèi)每個分區(qū)的計算都會對應(yīng)一個Task。
轉(zhuǎn)載于:https://my.oschina.net/u/3701483/blog/3011161
總結(jié)
- 上一篇: LeetCode18.四数之和 Java
- 下一篇: js编程