最近在看《**spark:核心原理與技術實踐》,為了便於自己溫故而知新,已經檢驗理解是否到位,以下是記錄的學習筆記。
我的一般學習思路是首先學會用,再來深入學習。所以,首先由spark的執行流程切入:
從spark的執行流程入手,學習了解spark的核心組成。下面是spark的乙個基本執行流程
整個過程包括:提交作業、劃分排程階段(78)、提交排程階段(9)、提交執行任務(1012)、獲取執行結果(13)
sparkcontext向資源管理器申請執行executor
資源管理器分配executor
資源管理器啟動executor
2-6步驟如下圖所示:
dagscheduler排程階段
7. sparkcontext構建成dag圖
a. dag(有向無環圖),反應rdd之間的依賴關係,如下圖所示:
8. dagscheduler將dag圖分解成stage(taskset)
9. dagscheduler將將stage(taskset)傳送給taskscheduler
a. 基於dag劃分stage,負責將作業拆分成不容階段的具有依賴關係的多批任務。乙個sparkcontext對應建立乙個dagscheduler(有向無環圖排程器)
b. stage的劃分依據就是寬依賴
c. dagscheduler的作用有:
taskscheduler排程階段
executor向sparkcontext申請task
taskscheduler將task發放給executor執行
同時,sparkcontext將應用程式**發放給executor
task在executor上執行,執行完畢釋放所有資源
a. taskscheduler任務排程器,將taskset提交給worker執行並監控,完成的任務有:
spark **現的幾個概念的關係:
作業job:rdd中由action操作生成的乙個或多個排程階段
排程階段stage:每個job會因為rdd之間的依賴關係拆分多組任務集合(稱為排程階段, 也叫作taskset任務集)排程階段由dagscheduler來劃分,排程階段有shuffle map stage和result stage
任務task:spark實際執行應用的最小單元,分發到executor上的工作任務
Spark執行流程
四個步驟 1.構建dag 呼叫rdd上的運算元 2.dagscheduler將dag切分stage 切分的依據是shuffle 將stage中生成的task以taskset的形式給taskscheduler 3.taskscheduler排程task 根據資源情況將task排程到相應的executo...
Spark執行流程
參考博文 apache spark 是專為大規模資料處理而設計的快速通用的計算引擎。hadoop雖然已成為大資料技術的事實標準,但其本身還存在諸多缺陷,最主要的缺陷是其mapreduce計算模型延遲過高,無法勝任實時 快速計算的需求,因而只適用於離線批處理的應用場景。磁碟io開銷大。每次執行時都需要...
Spark執行流程概述
cluster manager 在hadoop yarn上主要是指resourcemanager stage 每個job會被劃分為很多組task,作為乙個taskset,名為stage.stage的劃分和排程由dagscheduler負責。stage有非最終的stage shuffle map st...