始终是驱动程序必须位于主节点上(是/否)?Apache的火花

Dam*_*jar 1 amazon-ec2 master-slave amazon-web-services apache-spark

始终是驱动程序(作为运行主节点的程序)必须位于主节点上的情况吗?

例如,如果我使用一个主服务器和两个工作服务器设置ec2,那么必须从主EC2实例执行具有主服务器的代码吗?

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

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

谢谢你的回答,参考将非常感谢!

Ali*_*Lee 5

不,它不一定是在主人身上.

使用spark-submit您可以使用deploy-mode来控制驱动程序的运行方式(client在运行提交的计算机上(可以是master或其他),或者作为cluster工作者).

工作人员和司机之间存在网络通信,因此您希望它"接近"工作人员,而不是通过WAN.

您可以spark-shell可以从IDE访问的repl()内部运行.如果您使用的是像Clojure这样的动态语言,您还可以创建一个SparkContext引用(通过master)本地群集,或者要将作业放入的群集,然后通过repl进行编码.在实践中,这并不容易.