文档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 ?
我们在纱线集群上运行火花作业,发现即使没有足够的资源,火花作业也会启动.
举一个极端的例子,一个火花作业要求1000个执行器(4个核心和20GB内存).在整个集群中,我们只有30个节点r3.xlarge(4核和32GB RAM).这项工作实际上可以启动和运行只有30个执行者.我们尝试将动态分配设置为false,我们尝试了容量调度程序和纱线的公平调度程序.一样的.
如果没有足够的资源,我们如何才能开始工作?这有什么火花边或纱线边设置吗?