Spark作业基本运行原理
- 使用spark-submit提交spark作业,启动相应的Driver进程,本地或工作节点
- driver进程向集群管理器(standalone)申请运行spark作业所需的资源(Executor进程)
- 在各个工作节点启动一定数量的executor进程,每个进程占有一定数量内存核CPU
- Driver进程调度spark作业:spark作业根据shuffle类算子被分为多个stage,每个stage创建一批task,被分配到executor中执行
- 一个stage的所有task执行完毕,将中间结果写入各个节点本地的磁盘文件
- driver开始调度下一个stage,该stage的输入是上一个stage的输出,循环直到作业结束