Spark中的资源调度
Spark中涉及的资源调度可以分为4层:
- YARN对不同SparkApplication(SparkContext)的调度
- 同一个SparkAppliction内不同资源池(pool)之间的调度
- 同一个SparkAppliction内同一个资源池(pool)内不同TaskSetManager的调度
- 同一个SparkAppliction内同一个资源池(pool)内同一个TaskSetManager内的Task调度
前置
为啥需要资源调度
当用户提交作业,Spark内部的执行流程如下图:
Spark上层的SQL/Streaming等最终都会生成RDD到底层SparkCore执行。如上图所示当RDD执行一个action类型的算子(如collect)会触发一个Job的提交到DAGScheduler,DAGScheduler会将Job拆成Stage(根据s

