Spark核心架構深度剖析

2021-08-19 07:46:17 字數 1004 閱讀 6098

driver:就是我們用來提交編寫的spark程式的一台機器,在driver中最重要的一件事—建立sparkcontext

sparkcontext : 我們在建立sparkcontext的過程中,最重要的3件事,其一建立dagsechedule(有向無迴圈圖排程者),其二建立taskscheduler(任務排程者),三就是依照tasksecheduler建立taskschedulerbackend(任務排程後端)

worker:是乙個程序,除了master節點,每個節點都有乙個worker程序。master節點可以配置可以不用配置worker程序。它是spark執行的勞動力

executor:worker節點內建立的程序,為每個task分配資源並執行task

job:每乙個action操作都會形成乙個job

taskscheduler:taskscheduler ,就會組織,排程task進行任務執行

當worker中的 executor 啟動之後,會主動反向註冊到driver,當driver收到所有的executor(一組executor)反向註冊資訊之後,就開始載入資料建立rdd ,將各種運算元交給dagscheduler管理【so 問題來了,driver是如何知道它收到了一組內所有的executor呢,大家還記不記得,master接收到driver的註冊請求後,進行任務分配,通知各個worker進行接收任務,worker結合之後會做出回應給master任務接收到了,master會告訴driver,worker已經接收任務了,並且master此時此刻將任務分配計畫,交給driver,driver按照這個分配計畫,就可以知道是否一組內executor是否已經全部到達】

taskrunner: 在我們的task分配過來的時候,executor會從執行緒池中抽取相應的task,把它給我封裝成taskrunner,執行具體的flatmap , map ,reducebykey等等操作

實際上,task任務分為兩種,shufflemaptask,resulttask,resulttask說白了就是執行action的task,其餘都是shufflemaptask

Spark核心架構深度剖析

1,通過spark submit提交編寫好的spark程式,這時候spark會通過反射的方式,建立和構造乙個driveractor程序出來。3,應用程式每執行到乙個action就會建立乙個job,job會提交給dagscheduler,dagscheduler會通過stage劃分演算法 5,mast...

Spark架構剖析

spark deploymet 部署 軟體中有哪些實體,實體間如何協調工作。cluster manager負責管理和分配集群資源 driver program相當於專案經理 executor 相當於軟體工程師 resource core memeory io 磁碟io 網路io coarse gra...

spark核心架構

driver部分的 sparkconf sparkcontext driver 部分 val conf new sparkconf val sc new sparkcontext conf end executor部分 分布到集群中的 比如 textfile flatman map worker 管...