我想知道在mesos上我们每个节点只能有一个执行器吗?
上下文 我在5个节点(工作人员)的集群上运行spark-submit(Spark 2.0.1)作业,每个节点具有80个CPU和512 GB内存,处于粗粒度模式。
Mesos运行模式部分中的Spark Running Spark on Mesos的官方文档说,在粗粒度模式下(默认)我可以设置两个参数:spark.executor.memory
,{{1那个spark.executor.cores
会给我许多执行者。
问题这是否正确?
我已经玩了一周的spark-submit设置,我能够在群集上获得的最大执行程序数为5(驱动程序为1,实际工作为4)。这基于Spark UI中的Executors选项卡。
我已经看到了这个StackOverflow问题:Understanding resource allocation for spark jobs on mesos据说:
在粗粒度模式下,Spark每个主机只启动一个执行程序
在Mesos 部分的Mastering Apache Spark 计划程序中,它说
在粗粒度模式下,每个Mesos执行器都有一个Spark执行器,有许多Spark任务。
我不明白这意味着什么。是否每个节点只有一个Mesos_executor,这意味着每个节点有一个Spark_executor?
如果所有这些都不属实,我可以有更多的执行者。
问题是否有一些限制执行者数量的mesos设置?
答案 0 :(得分:1)
不再是真的了。 SPARK-5095 Support launching multiple mesos executors in coarse grained mesos mode已在Spark 2.0和to the merged PR中解决:
此PR实现了两个高级功能。这两个功能是相互依赖的,所以它们都在这里实现:
- Mesos支持spark.executor.cores
- 每个奴隶的多个执行者