概念
1. job定义:
我们都知道,在spark rdd中,有action、transform操作,当真正触发action时,才真正执行计算,此时产生一个job任务。
2. stage定义:
以shuffle为界,当在一个job任务中涉及shuffle操作时,会进行stage划分,产生一个或多个stage。
3. task定义:
一个stage可能包含一个或者多个task任务,task任务与partition、executor息息相关,即并行度。
4. partition定义:
partition个数即rdd的分区数,不同的数据源读进来的数据分区数默认不同,可以通过repartition进行重分区操作。
5. executor定义:
executor运行在work上,一个work可以运行一个或多个executor,一个executor可以运行一个或者多个task(取决于executor的core个数,默认是一个task占用一个core,即有多少个core就可以启动多少个task任务)
6. 各个之间的关系图:
- 一个work有一个或多个executor
- 一个executor有一个或者多个task&#