数学建模社区-数学中国
标题:
SparkCore:Spark原理初探(执行流程图)
[打印本页]
作者:
杨利霞
时间:
2020-4-24 18:08
标题:
SparkCore:Spark原理初探(执行流程图)
3 C% `: F. k+ I J* j J7 B
SparkCore:Spark原理初探(执行流程图)
4 B+ z/ t. y4 L
基本概念
( c/ e7 {/ h: Z% }/ E* N
% N; }' m5 T: V( y5 R$ ^# M
$ H" ^8 D d" Z
2020-4-24 18:05 上传
下载附件
(148.16 KB)
" t* P; N, l/ d
6 C4 e3 O( ]2 D5 n9 G# S, `
2020-4-24 18:06 上传
下载附件
(114.94 KB)
% E0 y; v4 ~1 T) J1 s
$ Z) C8 ~+ B/ f2 y+ m6 T( H
名词解释
7 \; A' R* \" d' o- \
Application:指的是用户编写的Spark应用程序/代码,包含了Driver功能代码和分布在集群中多个节点上运行的Executor代码。
2 j- u$ {* u9 j
Driver:Spark中的Driver即运行上述Application的Main()函数并且创建SparkContext,SparkContext负责和ClusterManager通信,进行资源的申请、任务的分配和监控等
2 S, `7 I. n: ]4 s
Cluster Manager:指的是在集群上获取资源的外部服务,Standalone模式下由Master负责,Yarn模式下ResourceManager负责;
0 `7 ~9 B1 R g5 {* _& c" W. ~
Executor:是运行在工作节点Worker上的进程,负责运行任务,并为应用程序存储数据,是执行分区计算任务的进程;
$ i- j; j7 d+ w. {3 y7 ~
RDD:Resilient Distributed Dataset弹性分布式数据集,是分布式内存的一个抽象概念;
0 g' [( F- j5 `4 X, k; _
DAG:Directed Acyclic Graph有向无环图,反映RDD之间的依赖关系和执行流程;
+ X$ j8 m; b U ~4 S
Job:作业,按照DAG执行就是一个作业;Job==DAG
* a) W" t" ?1 u( }' |9 y! l
Stage:阶段,是作业的基本调度单位,同一个Stage中的Task可以并行执行,多个Task组成TaskSet任务集
) M/ c% t+ o; o3 @) B/ _
Task:任务,运行在Executor上的工作单元,一个Task计算一个分区,包括pipline上的一系列操作
: e' h# E7 M: \1 [ u
基本流程
u z2 B$ X |* Z4 R: j- \
i6 E$ M+ p4 A; ^$ l" i
Spark运行基本流程
* @# I/ z6 Y' J7 |. ~; L! q
当一个Spark应用被提交时,首先需要为这个Spark Application构建基本的运行环境,即由任务控制节点(Driver)创建一个SparkContext,
* l3 a7 U% e0 L1 N6 W& O
SparkContext向资源管理器注册并申请运行Executor资源;
2 M. j1 N d' V5 ^
资源管理器为Executor分配资源并启动Executor进程,Executor运行情况将随着心跳发送到资源管理器上;
; j" U2 {% Q0 S2 D g3 M
SparkContext根据RDD的依赖关系构建成DAG图,并提交给DAGScheduler进行解析划分成Stage,并把该Stage中的Task组成Taskset发送给TaskScheduler。
. W- C7 d6 \$ S5 b) E
TaskScheduler将Task发放给Executor运行,同时SparkContext将应用程序代码发放给Executor。
3 k% A, Y x6 ]6 U' w- @
Executor将Task丢入到线程池中执行,把执行结果反馈给任务调度器,然后反馈给DAG调度器,运行完毕后写入数据并释放所有资源。
& F7 `( S. a _+ c
流程图解
% b0 T. E2 o( Z2 z6 @% j
/ j% y$ T, K/ I3 e+ V; ?
2020-4-24 18:06 上传
下载附件
(256.68 KB)
5 d3 P4 c& @" \& x+ p, E7 p
9 F. B7 z/ u6 o
2020-4-24 18:06 上传
下载附件
(310.42 KB)
% o& }* r; |1 a) u( S
" C+ A @8 a0 g
2020-4-24 18:06 上传
下载附件
(110.74 KB)
* _0 N2 k# \* b# W
8 t7 b( c3 @" w* I' K% T" U$ @" E$ Q
2020-4-24 18:06 上传
下载附件
(173.06 KB)
5 J0 n( `: j! ^) @ j# G5 @( G
9 m. r9 x& Q; x/ ]7 G; N
2020-4-24 18:06 上传
下载附件
(357.18 KB)
8 I' l% Z) M( z/ {0 H* [
1 B1 K/ z" @2 c9 [
& q! x f4 P7 s( B- A3 I( k
1 i8 F' s# p8 j3 K4 J
总结
4 v1 s4 B$ l$ r8 d9 V% J& w
: c& b4 S6 c8 X( \5 e! a9 n( n
Spark应用被提交–>SparkContext向资源管理器注册并申请资源–>启动Executor
- C' k8 S% [) W. J& K2 [1 h* Z
RDD–>构建DAG–>DAGScheduler划分Stage形成TaskSet–>TaskScheduler提交Task–>Worker上的Executor执行Task
% O1 K1 H/ l! j1 \4 l4 C
7 k) o7 B @9 {4 [' ]
————————————————
7 x' X# }: r6 J/ t
版权声明:本文为CSDN博主「真情流露哦呦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
* E( {" N% x- ]
原文链接:https://blog.csdn.net/weixin_43563705/article/details/105699268
( T& u3 T$ Q% O9 |2 d' A, M
) S/ s; ^4 Z; Y( L/ B! k
; @7 T4 J& w7 m' j0 \- s1 X
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5