数学建模社区-数学中国
标题:
SparkCore:Spark原理初探(执行流程图)
[打印本页]
作者:
杨利霞
时间:
2020-4-24 18:08
标题:
SparkCore:Spark原理初探(执行流程图)
+ C8 L6 D$ |6 a: t- D
SparkCore:Spark原理初探(执行流程图)
. t0 V$ K1 C% R! J G, I
基本概念
) s* z4 M& ]) A% `$ l" _% Q
9 Z1 c- L: ~" b) p* t
- r5 Q4 t! a9 m( r
2020-4-24 18:05 上传
下载附件
(148.16 KB)
$ v) p1 x' }, }6 V9 V2 W
2 e2 ]( m0 m& k! P$ h3 s4 d
2020-4-24 18:06 上传
下载附件
(114.94 KB)
. Q/ G; g5 z" R" F* c4 c3 [
3 U$ U% X; |3 W J" l$ o* |% \
名词解释
% m9 h* U0 [* d
Application:指的是用户编写的Spark应用程序/代码,包含了Driver功能代码和分布在集群中多个节点上运行的Executor代码。
q" y. d. T" \- q3 C& \; }
Driver:Spark中的Driver即运行上述Application的Main()函数并且创建SparkContext,SparkContext负责和ClusterManager通信,进行资源的申请、任务的分配和监控等
; r4 k* `- h7 X* S. t& ^
Cluster Manager:指的是在集群上获取资源的外部服务,Standalone模式下由Master负责,Yarn模式下ResourceManager负责;
$ f9 Y4 L5 |4 x* C% A" S- x3 E
Executor:是运行在工作节点Worker上的进程,负责运行任务,并为应用程序存储数据,是执行分区计算任务的进程;
3 Y# S( ?! a2 |/ |6 P6 A4 n& m; e
RDD:Resilient Distributed Dataset弹性分布式数据集,是分布式内存的一个抽象概念;
( { q! \; t3 m6 K% } J* e2 F
DAG:Directed Acyclic Graph有向无环图,反映RDD之间的依赖关系和执行流程;
h) l+ ]4 M; {; l- H1 I/ z6 v
Job:作业,按照DAG执行就是一个作业;Job==DAG
4 O: m6 i) q1 }
Stage:阶段,是作业的基本调度单位,同一个Stage中的Task可以并行执行,多个Task组成TaskSet任务集
9 ?& r+ U8 [. r! e! V1 e
Task:任务,运行在Executor上的工作单元,一个Task计算一个分区,包括pipline上的一系列操作
, a [! n2 n3 @' Q, V2 r, m0 j
基本流程
5 a, T! V# `6 L: H2 \6 T; C
& }- z7 h* }4 n# r+ _3 ?/ Q% U4 D
Spark运行基本流程
7 v) A% E8 k5 a0 a/ O& t
当一个Spark应用被提交时,首先需要为这个Spark Application构建基本的运行环境,即由任务控制节点(Driver)创建一个SparkContext,
' O/ S; R9 k$ J+ n/ O3 M& V5 t
SparkContext向资源管理器注册并申请运行Executor资源;
% A. i+ m% j8 ]' s+ q- q
资源管理器为Executor分配资源并启动Executor进程,Executor运行情况将随着心跳发送到资源管理器上;
8 ^; i2 ~3 t, e
SparkContext根据RDD的依赖关系构建成DAG图,并提交给DAGScheduler进行解析划分成Stage,并把该Stage中的Task组成Taskset发送给TaskScheduler。
/ d" z1 o* q7 B, L, Q9 z# ~6 Q$ [
TaskScheduler将Task发放给Executor运行,同时SparkContext将应用程序代码发放给Executor。
2 F; N+ m. p& J# ` o# M
Executor将Task丢入到线程池中执行,把执行结果反馈给任务调度器,然后反馈给DAG调度器,运行完毕后写入数据并释放所有资源。
3 Q5 W8 P. L, N) N
流程图解
9 M" G& T5 Z1 f
4 B; R; q1 [) y% J( |- \" `
2020-4-24 18:06 上传
下载附件
(256.68 KB)
) R1 [9 G* H& K: O! |
" f; K2 X1 ^6 r6 B# {1 R8 G9 C9 N- o
2020-4-24 18:06 上传
下载附件
(310.42 KB)
0 s" [' u7 t5 Y# W( B
; ~ g; b- \# [* J/ g* h6 P
2020-4-24 18:06 上传
下载附件
(110.74 KB)
" i- U5 \. C, T$ r2 s
3 h" V9 T0 e# d! ~8 u/ @! a. i
2020-4-24 18:06 上传
下载附件
(173.06 KB)
7 n6 _, r9 f! @% z6 X1 |9 n4 e6 n
" ~2 A) l3 T7 Z* F* d
2020-4-24 18:06 上传
下载附件
(357.18 KB)
' Z& L" @& q8 @% {8 ]
5 E8 }+ F- Y$ T. ^
5 ]* e4 a' H3 [4 z, K6 o
8 \6 o/ l7 m# E" F( N
总结
/ }& C- w( y0 B
8 @) k4 G1 K4 Y6 O$ j' E6 G# R8 H
Spark应用被提交–>SparkContext向资源管理器注册并申请资源–>启动Executor
, }) B: u3 i; ^7 R% l9 [
RDD–>构建DAG–>DAGScheduler划分Stage形成TaskSet–>TaskScheduler提交Task–>Worker上的Executor执行Task
8 W* m, S( L A9 E! k7 j4 I- N
! L% S" B) V5 _+ `3 S
————————————————
6 C1 T6 O' `, S( j& X% w
版权声明:本文为CSDN博主「真情流露哦呦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
3 t, v% R `( Z
原文链接:https://blog.csdn.net/weixin_43563705/article/details/105699268
7 m; y! {8 {+ l$ a" t! B( d/ Z
, ^( a/ A- a' G$ Z& O% V
$ g/ [4 ^ G2 [# i) s; r' S1 q
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5