转型和行动的火花工作在哪里完成?

where is the spark job of transformation and action done?

一直在用Spark + Python完成一些作品,很不错,但是我有一个疑问:

转换和行动的火花工作在哪里完成? 转换工作是在 Spark Master(或 Driver)中完成,而 action 工作是在 Workers(Executors)中完成,还是两者都在 Workers(Executors)中完成

谢谢

执行者的转换运行。

执行者和驱动程序的操作 运行。大部分工作仍在执行器中进行,但减少输出等最终步骤在驱动程序中执行。

当对 RDD 调用任何操作时,Spark 会创建 DAG 并提交给 DAG 调度程序。

DAG 调度器将算子划分为任务的阶段。一个阶段由基于输入数据分区的任务组成。 DAG 调度程序将运算符流水线化在一起。

阶段被传递到任务 Scheduler.The 任务调度程序通过集群管理器启动任务。(Spark Standalone/Yarn/Mesos)。任务调度程序不知道阶段的依赖关系。

The tasks(transformation) executes on the Workers(Executors) and when action(take/collect) is called it brings back the data at the Driver.

Workers (aka slaves) are running Spark instances where executors live to execute tasks.

转换在 worker 上执行,当调用 action 方法时,计算的数据被带回驱动程序。

Spark 中的应用程序分三步执行:

1.Create RDD 图,即 DAG (directed acyclic graph) 个 RDD 来表示整个计算。

2.Create阶段图,即DAG of stages是一个基于RDD图的逻辑执行计划。阶段是通过在洗牌边界打破 RDD 图来创建的。

3.Based 计划,schedule and execute 工人任务