1.1 在client使用spark-submit提交一个spark任务后

spark任务submit到yarn集群需要经过的步骤

  • 首先,每个任务会对应启动一个Driver进程
  • 然后,Driver进程为spark任务申请资源:向集群管理器Resource Manager申请运行Spark作业需要使用的资源,主要的资源是Executor进程,Executor进程数量以及所需的CPU core可以通过spark任务设置的资源参数来指定;
  • 其次,Driver进程会将Spark任务代码分拆为多个stage:资源申请完毕后,开始调度与执行任务代码,第一步就是将job拆分多个stage;
  • 然后,Driver进程为每个stage创建一批task
  • 最后,将这些task分配到各个Executor进程中执行

1.2 相关概念

1.2.1  Job

job指的是在提交的spark任务中一个action,可以在spark ui的Jobs中可以看到Active Jobs为你的action的名称。

spark任务submit到yarn集群需要经过的步骤

1.2.2  stage

一个job会被拆分为一个或多个stage来执行,每个stage执行一部分代码片段,各个stage会按照执行顺序来执行,而job按照什么规则来划分stage呢?

spark根据shuffle类算子(如join)来进行stage的划分,即在shuffle类算子之前的代码为一个stage,在该shuffle类算子之后的代码则会下一个stage,那么每个stage的执行不需要对整个数据集进行shuffle即可完成。

spark任务submit到yarn集群需要经过的步骤

1.2.3  task

一个stage由一批task线程来执行,task是spark最小的计算单元,每个task执行相同的逻辑计算,但使用不同分区的数据,一个分区一个task
spark任务submit到yarn集群需要经过的步骤


  •  

相关文章:

  • 2022-12-23
  • 2021-05-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-24
猜你喜欢
  • 2021-08-20
  • 2022-12-23
  • 2021-08-20
  • 2021-09-30
  • 2022-12-23
  • 2021-11-24
  • 2021-12-21
相关资源
相似解决方案