Spark學習筆記一 執行流程

2021-09-11 20:32:00 字數 1767 閱讀 5828

最近在看《**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...