job、stage、task
Worker Node:物理节点,上面执行executor进程
Executor:Worker Node为某应用启动的一个进程,执行多个tasks
Jobs:action 的触发会生成一个job, Job会提交给DAGScheduler,分解成Stage,
Stage:DAGScheduler 根据shuffle将job划分为不同的stage,同一个stage中包含多个task,这些tasks有相同的 shuffle dependencies。
有两类shuffle map stage和result stage:
shuffle map stage:case its tasks' results are input for other stage(s)
result stage:case its tasks directly compute a Spark action (e.g. count(), save(), etc) by running a function on an RDD,输入与结果间划分stage.
Task:被送到executor上的工作单元,task就是在一个数据partition上的单个数据处理流程。
小结:
action触发一个job (task对应在一个partition上的数据处理流程)
------stage1(多个tasks 有相同的shuffle依赖)------【map--shuffle】------- stage2---- 【result--shuffle】-----
---------------------
基于下图知
job0有4个stage,共7个task
stage0:1个分区有1个task执行
stage1--3:各有2个分区,各有2个task执行,共6个task
job1有1个stage(复用job0的RDD),有2个task