数学建模社区-数学中国
标题:
SparkCore:Spark原理初探(执行流程图)
[打印本页]
作者:
杨利霞
时间:
2020-4-24 18:08
标题:
SparkCore:Spark原理初探(执行流程图)
! h3 _+ T- n1 i# T
SparkCore:Spark原理初探(执行流程图)
9 n+ ?/ Z9 ]) b0 Q& ~8 e$ u
基本概念
/ U% j# P# J; m5 |
8 B2 |. y* T) m. D3 _
4 J! {0 }/ n4 b# b
2020-4-24 18:05 上传
下载附件
(148.16 KB)
2 L6 ]; d; F+ ^6 m. B
; X! F% x( F5 F/ c
2020-4-24 18:06 上传
下载附件
(114.94 KB)
. `0 U+ |( ^, ]" L
6 m( i& E, B8 p' W
名词解释
r0 X# P E+ G9 L# V
Application:指的是用户编写的Spark应用程序/代码,包含了Driver功能代码和分布在集群中多个节点上运行的Executor代码。
" S& ?6 ^" b* o7 z( O, w0 e
Driver:Spark中的Driver即运行上述Application的Main()函数并且创建SparkContext,SparkContext负责和ClusterManager通信,进行资源的申请、任务的分配和监控等
8 N8 q+ T! T- Q& n
Cluster Manager:指的是在集群上获取资源的外部服务,Standalone模式下由Master负责,Yarn模式下ResourceManager负责;
5 g% `' n, p- Y/ w( I1 d
Executor:是运行在工作节点Worker上的进程,负责运行任务,并为应用程序存储数据,是执行分区计算任务的进程;
4 x" x( S9 _. |" c+ Q$ x# k" s
RDD:Resilient Distributed Dataset弹性分布式数据集,是分布式内存的一个抽象概念;
7 I% ^# P2 o" G. g$ H; k
DAG:Directed Acyclic Graph有向无环图,反映RDD之间的依赖关系和执行流程;
' z; E u1 G/ o; R( a
Job:作业,按照DAG执行就是一个作业;Job==DAG
2 T* c5 H( f) O2 b" d
Stage:阶段,是作业的基本调度单位,同一个Stage中的Task可以并行执行,多个Task组成TaskSet任务集
7 D3 P K/ [) `: U1 s
Task:任务,运行在Executor上的工作单元,一个Task计算一个分区,包括pipline上的一系列操作
2 m V+ W! S( r# M2 _6 X
基本流程
* e8 L, s6 m" ^1 u6 L* D( o* }$ m1 j
$ }4 K" h2 o! j
Spark运行基本流程
* [3 r$ Z5 [- E Z1 R( |
当一个Spark应用被提交时,首先需要为这个Spark Application构建基本的运行环境,即由任务控制节点(Driver)创建一个SparkContext,
( W) }0 U0 d) @
SparkContext向资源管理器注册并申请运行Executor资源;
1 F8 M( Q3 q% l7 o" @' Y( s4 f+ \
资源管理器为Executor分配资源并启动Executor进程,Executor运行情况将随着心跳发送到资源管理器上;
0 ?4 m- s' d% w5 h3 L) o1 ~
SparkContext根据RDD的依赖关系构建成DAG图,并提交给DAGScheduler进行解析划分成Stage,并把该Stage中的Task组成Taskset发送给TaskScheduler。
2 q9 D: |: Y, Y2 r1 v& M% n
TaskScheduler将Task发放给Executor运行,同时SparkContext将应用程序代码发放给Executor。
' X& Z5 |# u8 j1 H, @
Executor将Task丢入到线程池中执行,把执行结果反馈给任务调度器,然后反馈给DAG调度器,运行完毕后写入数据并释放所有资源。
: s0 Z6 d- t' g. b
流程图解
$ H! W* Y4 {! X/ v1 P. j. r
) Q+ M; X3 r# m+ e" @
2020-4-24 18:06 上传
下载附件
(256.68 KB)
1 [3 s7 M9 L- D4 G) G. e
2 H: D G( e7 C% A( x' L
2020-4-24 18:06 上传
下载附件
(310.42 KB)
; s* F# q$ M9 y! D
) w. k: r3 @$ L ]' J) u
2020-4-24 18:06 上传
下载附件
(110.74 KB)
* s! R2 ~3 M8 D+ N
& l! z! U x$ S6 U& {- M( u: Z& p
2020-4-24 18:06 上传
下载附件
(173.06 KB)
7 U5 E% K1 H& X3 ?1 b
9 {3 U. x% ]/ _2 m L% s5 Z$ m
2020-4-24 18:06 上传
下载附件
(357.18 KB)
0 ?: e" N _# J3 s# K s* X! y
5 } M) |% U9 Q
) ?8 X3 D/ _8 W0 l9 w4 n. a4 o
/ W+ a+ p# _8 i! D. k
总结
; ^+ F8 u T; a, J
0 [; z( ]% G$ ~0 A# m% @
Spark应用被提交–>SparkContext向资源管理器注册并申请资源–>启动Executor
5 |- R& K6 H$ \& I: h( ^& C
RDD–>构建DAG–>DAGScheduler划分Stage形成TaskSet–>TaskScheduler提交Task–>Worker上的Executor执行Task
$ B3 w6 l7 F4 ~0 u% w. `
% @6 C$ @: E0 {
————————————————
7 U/ R9 l& P! B, Q& m6 w V" c3 C ~1 o
版权声明:本文为CSDN博主「真情流露哦呦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
. Q7 k% k) `+ m( {2 d0 i, E$ o
原文链接:https://blog.csdn.net/weixin_43563705/article/details/105699268
0 B# U/ d3 Q% s4 N3 W3 R/ x$ K
& `* F) p8 F$ ~5 A. `7 g
2 D0 Y+ L; R9 f2 r! ~: g
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5