数学建模社区-数学中国

标题: SparkCore:Spark原理初探(执行流程图) [打印本页]

作者: 杨利霞    时间: 2020-4-24 18:08
标题: SparkCore:Spark原理初探(执行流程图)
& E1 D' Y' E; q  x
SparkCore:Spark原理初探(执行流程图)/ V' e" U. y; C/ _0 s4 D$ Z
基本概念+ o! B% w& \9 j& S

+ o, |, i$ X! J" C* }. y- |2 K0 ^% l' q! b
2.png $ y# v* `: K5 o8 r0 q
; r2 v. ]+ _$ b& J& Y( \# m; u1 L
3.png
9 w$ E' V- Y( `3 B" ^
+ `* y4 Q" [9 V' d名词解释
7 v  I; P7 M! q2 ]. w/ XApplication:指的是用户编写的Spark应用程序/代码,包含了Driver功能代码和分布在集群中多个节点上运行的Executor代码。) B3 K1 j7 |7 o& Z' K! P
Driver:Spark中的Driver即运行上述Application的Main()函数并且创建SparkContext,SparkContext负责和ClusterManager通信,进行资源的申请、任务的分配和监控等  ^% ^+ S9 Q( c- `) G' A/ \
Cluster Manager:指的是在集群上获取资源的外部服务,Standalone模式下由Master负责,Yarn模式下ResourceManager负责;- W6 b) ~0 T1 Z- x/ c8 ^2 p
Executor:是运行在工作节点Worker上的进程,负责运行任务,并为应用程序存储数据,是执行分区计算任务的进程;
( G9 \' a" r0 ~% SRDD:Resilient Distributed Dataset弹性分布式数据集,是分布式内存的一个抽象概念;* `* }" p3 W0 U& Z. j
DAG:Directed Acyclic Graph有向无环图,反映RDD之间的依赖关系和执行流程;. \. Q7 \7 }; v+ o4 f+ Q$ M  k
Job:作业,按照DAG执行就是一个作业;Job==DAG( E. Z" S$ k' N, B  ?
Stage:阶段,是作业的基本调度单位,同一个Stage中的Task可以并行执行,多个Task组成TaskSet任务集" X1 H; f" u4 B+ ^% R
Task:任务,运行在Executor上的工作单元,一个Task计算一个分区,包括pipline上的一系列操作
1 `! @5 R2 e+ n; B+ O基本流程
7 O  P5 B; O1 \# g2 _
8 l9 p  o0 I2 L. P6 v, q" PSpark运行基本流程8 t) U" Q" N( m# N5 l# O7 T
当一个Spark应用被提交时,首先需要为这个Spark Application构建基本的运行环境,即由任务控制节点(Driver)创建一个SparkContext,
* B. J/ w, O9 z! [SparkContext向资源管理器注册并申请运行Executor资源;
, O4 H+ X% y9 W) Y4 \. V& h  t1 h9 o资源管理器为Executor分配资源并启动Executor进程,Executor运行情况将随着心跳发送到资源管理器上;4 W. E0 }4 x8 l' ~3 `
SparkContext根据RDD的依赖关系构建成DAG图,并提交给DAGScheduler进行解析划分成Stage,并把该Stage中的Task组成Taskset发送给TaskScheduler。
- ^3 f. _0 T8 Q$ {7 ?! p, eTaskScheduler将Task发放给Executor运行,同时SparkContext将应用程序代码发放给Executor。: K0 M$ c) O4 d' c5 P
Executor将Task丢入到线程池中执行,把执行结果反馈给任务调度器,然后反馈给DAG调度器,运行完毕后写入数据并释放所有资源。7 H7 F  c3 ]2 y! F1 Y2 A
流程图解
' X3 i) m: m' q/ d5 @6 d
0 u/ X' G( U; Y3 B! v; F 4.png % D) Q- j% a  _/ O! I( c8 P. O
0 u) V+ z+ l, ?5 w; Y: h/ S
5.png . ]# z3 z, |0 I3 r

) l+ M4 s, `3 L 6.png
" f& b/ ^8 _; _4 |/ U' C
& k) c$ {2 m! {* k8 w  J' y1 l 7.png ( q. c9 ]+ v6 y8 t# h! E
1 _( e$ k9 }# }4 B& [% H
8.png . p2 _3 |" O$ n( p0 v
- u& H* c- s- `! D, z8 R* [
+ R3 J; i  y6 \0 G$ r
5 x% N7 Z' f$ B7 P+ M6 z) H
总结$ Y# J3 h/ ~" x2 A% {; j4 _7 D

5 G6 Q8 w" O7 c1 XSpark应用被提交–>SparkContext向资源管理器注册并申请资源–>启动Executor
  ?) U3 n( h0 z7 l" f8 J% |$ TRDD–>构建DAG–>DAGScheduler划分Stage形成TaskSet–>TaskScheduler提交Task–>Worker上的Executor执行Task; d) \+ E: |+ P# F
# [+ i; u# [5 Z7 X( Q
————————————————
  ]; R6 Z% s" F" ~6 H版权声明:本文为CSDN博主「真情流露哦呦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
: |$ Q! S  r3 k9 P( H# H原文链接:https://blog.csdn.net/weixin_43563705/article/details/105699268# j  j* q) m; l; S7 J+ v2 m
# U, w4 ~% ^- N# r# \

) K( H: S1 L2 z$ e




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5