如果工作节点上未安装 Spark(在 YARN 上),如何启动 Spark Executors?

How are Spark Executors launched if Spark (on YARN) is not installed on the worker nodes?

我对集群模式下 YARN 上的 Apache Spark 运行 有疑问。根据 this thread,Spark 本身不必安装在集群中的每个(工作)节点上。我的问题出在 Spark Executors 上:一般来说,YARN 或者资源管理器应该决定资源分配。因此,Spark Executors 可以在集群中的任何(工作)节点上随机启动。但是,如果没有在任何(工作)节点上安装 Spark,YARN 如何启动 Spark Executors?

在高层次上,当 Spark 应用程序在 YARN 上启动时,

  1. 一个 Application Master(Spark specific)将在其中一个 YARN 容器中创建。
  2. 用于 Spark worker(执行器)的其他 YARN 容器

Spark 驱动程序会将序列化的操作(代码)传递给执行程序 以处理数据。

spark-assembly provides spark related jars to run Spark jobs on a YARN cluster and application will have its own functional related jars.


编辑: (2017-01-04)

Spark 2.0 no longer requires a fat assembly jar for production deployment.source