spark架構的組成圖如下:
cluster manager:在standalone模式中即為master主節點,控制整個集群,監控worker。在yarn模式中為資源管理器
worker節點:從節點,負責控制計算節點,啟動executor或者driver。
spark執行流程圖如下:
2.sparkcontext向資源管理器(可以是standalone,mesos,yarn)申請執行executor資源,並啟動standaloneexecutorbackend,
3.executor向sparkcontext申請task
4.sparkcontext將應用程式分發給executor
5.sparkcontext構建成dag圖,將dag圖分解成stage、將taskset傳送給task scheduler,最後由task scheduler將task傳送給executor執行
6.task在executor上執行,執行完釋放所有資源
spark執行特點:
spark與資源管理器無關,只要能夠獲取executor程序,並能保持相互通訊就可以了
task採用了資料本地性和推測執行的優化機制
常用術語:
和分布在集群中多個節點上執行的
executor**
driver:main函式
並建立sparkcontext,
建立sparkcontext的目的是為了準備spark應用程式的執行環境,在spark中有sparkcontext
負責與clustermanager通訊
,進行資源申請、任務的分配和監控
等,當executor部分執行完畢後,driver同時負責將sparkcontext關閉,通常用sparkcontext代表driver
executor:
worker節點上的
乙個程序
, 該程序負責
執行某些task
有且僅有乙個executor
物件, 負責將task包裝成
taskrunner
,並從執行緒池中抽取乙個空閒執行緒執行task, 這個每乙個
oarsegrainedexecutor backend
能並行執行task的數量取決與分配給它的cpu個數
cluter manager:指的是在集群上獲取資源的外部服務。目前有三種型別
standalone : spark原生的資源管理,由master負責資源的分配
apache mesos:與hadoop mr相容性良好的一種資源排程框架
hadoop yarn: 主要是指yarn中的resourcemanager
worker:
task:
被送到某個executor上的工作單元,但hadoopmr中的maptask和reducetask概念一樣,是
基本單位
,多個task組成乙個stage,而task的排程和管理等是由taskscheduler負責
job:
包含多個task組成的平行計算,往往
由spark action觸發
stage:
每個job會被拆分成多組task, 作為乙個
taskset
, 其名稱為stage,stage的劃分和排程是有dagscheduler來負責的,stage有非最終的stage(shuffle map stage)和最終的stage(result stage)兩種,stage的邊界就是發生shuffle的地方
dagscheduler:根據
job構建基於
stage的dag
(directed acyclic graph有向無環圖)
,並提交stage給taskscheduler。 其劃分stage的依據是rdd之間的依賴的關係找出開銷最小的排程方法,如下圖
將taskset提交給worker執行,每個executor執行什麼task就是在此處分配的. taskscheduler維護所有taskset,當executor向driver發生心跳時,taskscheduler會根據資源剩餘情況分配相應的task。另外taskscheduler還維護著所有task的執行標籤,重試失敗的task。下圖展示了taskscheduler的作用
在不同執行模式中任務排程器具體為:
spark on standalone模式為taskscheduler
yarn-client模式為yarnclientclusterscheduler
yarn-cluster模式為yarnclusterscheduler
將這些術語串起來的執行層次圖如下:
job=多個stage,stage=多個同種task, task分為shufflemaptask和resulttask,dependency分為shuffledependency和narrowdependency
spark作業提交原理
SpringMVC工作流程及原理
1 客戶發起請求到dispatcherservlet 前端控制器 4 dispatcherservlet呼叫handleadapter 處理器介面卡 處理handle,並返回乙個viewandmodel物件 5 dispatcherservlet呼叫viewresolve處理viewandmodel...
Spark工作流程簡述
資源管理器 standalone mesos或yarn 註冊並申請executor執行資源 2 資源管理器分配executor資源並啟動standaloneexecutorbackend,executor 運 況將隨著心跳傳送到資源管理器上 3 sparkcontext構建成dag圖並分解成stag...
Git基本工作流程及原理
作者前文介紹了git安裝方法,今天就分享一下關於作者對 git 工作原理的理解,文章有錯誤或不足之處請指正,大牛繞道,寫文不易,勿噴,謝謝!能對您有幫助是我創作最大的動力,本博主做事從來都是走心 github最詳細使用方法及教程 github建立檔案,上傳檔案以及issues git倉庫有三個工作區...