文档https://spark.apache.org/docs/1.1.0/submitting-applications.html
将deploy-mode描述为:
--deploy-mode: Whether to deploy your driver on the worker nodes (cluster) or locally as an external client (client) (default: client)
Run Code Online (Sandbox Code Playgroud)
使用此图表fig1作为指南(摘自http://spark.apache.org/docs/1.2.0/cluster-overview.html):

如果我启动Spark工作:
./bin/spark-submit \
--class com.driver \
--master spark://MY_MASTER:7077 \
--executor-memory 845M \
--deploy-mode client \
./bin/Driver.jar
Run Code Online (Sandbox Code Playgroud)
然后Driver Program将MY_MASTER按照指定fig1 MY_MASTER
如果我使用,--deploy-mode cluster那么Driver Program将在工作节点之间共享?如果这是真的那么这是否意味着可以删除Driver Program盒子fig1(因为它不再被使用),因为它们SparkContext也将在工作节点之间共享?
应该cluster用什么条件代替client ?
G Q*_*ana 92
不,当部署模式是client,驱动程序不一定是主节点.您可以在笔记本电脑上运行spark-submit,并在您的笔记本电脑上运行驱动程序.
相反,当部署模式为时cluster,则集群管理器(主节点)用于查找具有足够可用资源的从站以执行驱动程序.结果,驱动程序将在其中一个从节点上运行.由于委托执行,您无法从驱动程序中获取结果,它必须将其结果存储在文件,数据库等中.
小智 6
我认为这可能有助于您理解.在文档https://spark.apache.org/docs/latest/submitting-applications.html 它说"一个常见的部署策略是从物理上的网关机器提交您的应用程序 - 使用您的工作机器(例如,独立EC2集群中的主节点).在此设置中,客户端模式是合适的.在客户端模式下,驱动程序直接在spark-submit进程中启动,该进程充当集群的客户端.应用程序的输入和输出连接到控制台.因此,此模式特别适用于涉及REPL的应用程序(例如Spark shell).
或者,如果您的应用程序是从远离工作机器的计算机提交的(例如,在笔记本电脑上本地提交),则通常使用群集模式来最小化驱动程序和执行程序之间的网络延迟.请注意,Mesos群集或Python应用程序当前不支持群集模式."
| 归档时间: |
|
| 查看次数: |
33504 次 |
| 最近记录: |