- Driver启动,创建SparkContext
- SparkContext 向资源管理器注册,并向资源管理器申请运行 Executor
- 资源管理器分配资源,然后资源管理器启动 Executor
- Executor 发送心跳至资源管理器
- Executor 向 SparkContext 注册自己
- SparkContext 构建 DAG 有向无环图
- DAGScheduler 将 DAG 分解成 Stage(TaskSet)
- 把 Stage 发送给 TaskScheduler
- Executor 向 SparkContext 申请 Task
- TaskScheduler 将 Task 发送给 Executor 运行
- 同时 SparkContext 将应用程序代码发放给 Executor
- Task 在 Executor 上运行,运行完毕释放所有资源