Dan*_*ula 36 apache-spark apache-spark-standalone
TL; DR:在Spark Standalone集群中,客户端和集群部署模式之间有什么区别?如何设置应用程序运行的模式?
我们有一个带有三台机器的Spark Standalone集群,它们都使用Spark 1.6.1:
spark-submit从Spark文档中,我读到:
(...)对于独立群集,Spark目前支持两种部署模式.在客户端模式下,驱动程序在与提交应用程序的客户端相同的进程中启动.但是,在集群模式下,驱动程序从集群内的一个工作进程启动,客户端进程在完成其提交应用程序的责任时立即退出,而无需等待应用程序完成.
但是,通过阅读本文,我并不真正了解实际差异,而且我不了解不同部署模式的优点和缺点.
另外,当我使用start-submit启动我的应用程序时,即使我将属性设置spark.submit.deployMode为"cluster",我的上下文的Spark UI也显示以下条目:
所以我无法测试两种模式以查看实际差异.话虽这么说,我的问题是:
1)Spark Standalone 客户端部署模式和集群部署模式之间有哪些实际区别?使用每个人的专业和利益是什么?
2)如何选择我的应用程序将运行哪一个,使用spark-submit?
Yuv*_*kov 54
Spark Standalone客户端部署模式和集群部署模式之间的实际区别是什么?使用每个人的专业和利益是什么?
让我们试着看一下客户端和集群模式之间的区别.
客户:
簇:
--supervise标志从主节点监视驱动程序,并在其死亡时重置.哪一个更好?不确定,这实际上是你的实验和决定.这不是更好的决定,你从前者和后者获得的东西,由你决定哪一个更适合你的用例.
如何选择运行我的应用程序的哪一个,使用
spark-submit
选择运行模式的方法是使用--deploy-mode标志.从Spark Configuration页面:
/bin/spark-submit \
--class <main-class>
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]
Run Code Online (Sandbox Code Playgroud)
假设您要通过对主节点执行 SSH 来在 EMR 中执行 spark 提交。如果您提供选项 --deploy-mode cluster,则会发生以下情况。
但在 --deploy-mode 客户端的情况下:
这些是我迄今为止注意到的基本事情。