为什么独立的 master schedule 驱动程序在 worker 上?

Why does standalone master schedule drivers on a worker?

Master.scala中的schedule()表示第一个调度任务是在Worker上调度司机。由于 Master 将仅启动独立模式,因此驱动程序将 运行 on client out of Spark cluster.

为什么master需要调度一个Worker来运行 Driver?

如果您指的是 private def schedule(): Unit,该方法使用 --deploy-mode cluster.

调度 spark-submit 的 Spark 应用程序的驱动程序

来自 Launching Applications with spark-submit (that is linked from Cluster Mode Overview):

--deploy-mode Whether to deploy your driver on the worker nodes (cluster) or locally as an external client (client) (default: client)

cluster 部署模式下,驱动程序在集群中的一个 worker 上运行(并且与集群管理器、Spark Standalone、Hadoop YARN 或 Apache Mesos 无关)。与 Spark 执行器一样。