能详细说一下 driver, executor, job, stage, task 之间的关系吗

来源:6-4 -Spark运行架构及注意事项

pain7

2020-06-20

拆开来,我都明白,但是从整体的角度看,我就有点不大明白了。特别是对于 executor,这是一个硬件层面还是应用程序层面的啊。还有 executor 是有多个的,这个个数是随意指定的吗,跟分区数有关系吗?还有 job 为什么会有很多 stage 啊

写回答

2回答

Michael_PK

2020-06-20

我以onyarn模式来解释:executor就是运行在yarn上的nm中的一个container中的,这不是硬件的概念,这是一哥进程的概念,executor是可以多个的,就是多个可以运行在YARN集群之上。 一个job只要涉及到shuffle必然就是会拆分多个stage的。分区数的决定因素有很多,比如读数据进来默认分区数,你也可手动设置;reducebykey等算子也可以手工传入分区数

0
3
pain7
非常感谢!
2020-06-20
共3条回复

Michael_PK

2020-06-20

一个job就是action触发的,一个job可能就会对应1到N个stage,每个stage里面可以包含多个task,你可以跑一个sparkshell,然后通过UI上来观察,就比较好理解了

0
0

Python3实战Spark大数据分析及调度

使用Python3对Spark应用程序进行开发调优,掌握Azkaban任务调度

1046 学习 · 434 问题

查看课程