spark工作流程及原理(一)

2021-08-21 01:23:59 字數 3438 閱讀 1201

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倉庫有三個工作區...