驱动程序是否总是必须在主节点上 (Yes/No)?阿帕奇火花

Is it always the case that Driver must be on a Master node (Yes/No) ? Apache-Spark

Driver(作为运行主节点的程序)是否总是必须在主节点上?

例如,如果我用一个主节点和两个工作节点设置 ec2,我的代码是否必须从主节点 EC2 实例执行?

如果答案是否定的,那么设置驱动程序位于 ec2 主节点之外的系统的最佳方法是什么(比方说,驱动程序来自我的计算机 运行,而 Master 和 Workers在 EC2 上)? 我是否必须始终使用 spark-submit,或者我可以从 IDE(例如 Eclipse 或 IntelliJ IDEA)中执行此操作吗?

如果答案是肯定的,那么了解更多信息的最佳参考资料是什么(因为我需要提供某种证明)?

非常感谢您的回答,不胜感激!

不,它不一定要在 master 上。

使用 spark-submit 你可以使用 deploy-mode 来控制你的 driver 是 运行 的方式(作为 client,在机器上你 运行 提交(可以是 master 或其他),或者作为 cluster,提交给工人)。

工作人员和 driver 之间存在 network communication,所以您希望它 'close' 到工作人员,而不是通过 WAN。

您可以 run from inside 一个可以从您的 IDE 访问的 repl (spark-shell)。如果您使用的是像 Clojure 这样的动态语言,您也可以只创建一个 SparkContext 引用(通过 master)一个本地集群,或者您想要将作业放入的集群,然后通过回复实际上这并不容易。