1

驱动程序(作为运行主节点的程序)必须位于主节点上吗?驱动程序是否必须位于主节点上(是/否)? Apache-Spark

例如,如果我使用一个主人和两个工人来设置ec2,那么具有主代码的代码是否必须从主EC2实例执行?

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

如果答案是YES,那么最好的参考是什么来学习更多关于它(因为我需要提供某种证明)?

非常感谢您的回答,我们将非常感谢您的参考!

回答

5

不,它不一定要在主人身上。

使用​​可以使用deploy-mode来控制你的驱动器运行(作为client,运行提交(可以是主或其他机器上),或者作为cluster,对工人)。

工作人员和司机之间有network communication,所以你希望它与工人“接近”,绝不会跨越广域网。

您可以run from inside副本(spark-shell)可以从您的IDE访问。如果您使用的是像Clojure这样的动态语言,那么您也可以创建一个SparkContext(通过master)引用本地群集或要将作业添加到的群集,然后通过repl进行编码。在实践中,这并非易事。

+0

谢谢。我如何设置系统以避免火花提交,但是只需要使用Eclipse或IntelliJ IDEA之类的IDE来完成与spark-submit一样的工作? –

+1

你不能这样做! – eliasah

+0

@elisah,谢谢。我希望这适用于群集和客户端模式。任何参考(只是为了展示我的老板在工作)? –