文档https://spark.apache.org/docs/1.1.0/submitting-applications.html
将部署模式描述为:
--deploy-mode: Whether to deploy your driver on the worker nodes (cluster) or locally as an external client (client) (default: client)
使用此图表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
则Driver Program
将为MY_MASTER
,如fig1
MY_MASTER
中所指定
如果我使用--deploy-mode cluster
,那么Driver Program
将在工作节点之间共享吗?如果这是真的,那么这是否意味着fig1
中的Driver Program
机器可以被丢弃(因为它不再被使用),因为SparkContext
也将在工作节点之间共享?
在什么情况下应该使用cluster
而不是client
?
发布于 2015-03-02 11:07:12
不需要,当deploy-mode为client
时,驱动程序不一定是主节点。你可以在你的笔记本电脑上运行spark-submit,驱动程序就会在你的笔记本电脑上运行。
相反,当部署模式为cluster
时,则使用集群管理器(主节点)来查找具有足够可用资源来执行驱动程序的从节点。因此,驱动程序将在其中一个从节点上运行。因为它的执行是委托的,所以你不能从驱动程序中获得结果,它必须将其结果存储在文件、数据库等中。
对于想要获取作业结果的Spark模式(dynamic analysis)
,您的驱动程序是 up应用程序:将
发布于 2015-04-27 12:49:01
我认为这可能会帮助你understand.In文档https://spark.apache.org/docs/latest/submitting-applications.html它说:“一种常见的部署策略是从物理上与你的工作者机器(例如,独立EC2集群中的主节点)位于同一位置的网关机器提交你的应用程序。在这个设置中,客户端模式是合适的。在客户端模式下,驱动程序直接在作为集群客户端的spark-submit进程中启动。应用程序的输入和输出附加到控制台。因此,这种模式特别适用于涉及REPL的应用程序(例如Spark shell)。
或者,如果您的应用程序是从远离工作者机器的机器上提交的(例如,在您的笔记本电脑上本地),则通常使用集群模式来最小化驱动程序和执行器之间的网络延迟。注意,Mesos集群或Python应用程序目前不支持集群模式。“
发布于 2016-07-08 00:58:52
那么HADR呢?
https://stackoverflow.com/questions/28807490
复制