Apache spark Spark独立数字执行器/核心控制

Apache spark Spark独立数字执行器/核心控制,apache-spark,apache-spark-standalone,Apache Spark,Apache Spark Standalone,所以我有一个spark独立服务器,有16个内核和64GB的RAM。我的主服务器和辅助服务器都在运行。我没有启用动态分配。我在Spark 2.0上 我不明白的是,当我提交我的工作并指定: --num-executors 2 --executor-cores 2 只能使用4个芯。然而,当提交作业时,它将占用所有16个内核,并且不管如何,都会旋转8个执行器,绕过num executors参数。但是,如果我将executor cores参数更改为4,它将相应地进行调整,4个executor将旋转 免

所以我有一个spark独立服务器,有16个内核和64GB的RAM。我的主服务器和辅助服务器都在运行。我没有启用动态分配。我在Spark 2.0上

我不明白的是,当我提交我的工作并指定:

--num-executors 2
--executor-cores 2 

只能使用4个芯。然而,当提交作业时,它将占用所有16个内核,并且不管如何,都会旋转8个执行器,绕过
num executors
参数。但是,如果我将
executor cores
参数更改为
4
,它将相应地进行调整,4个executor将旋转

免责声明:我真的不知道
--num执行器
是否应该在独立模式下工作。我还没见过外面用的

注意:正如
--num executors
所指出的那样

通过组合
spark.cores.max
spark.executor.cores
可以在独立模式下通过静态分配有效控制执行器的数量(这也适用于Mesos),其中执行器的数量确定为:

floor(spark.cores.max / spark.executor.cores)
例如:

--conf "spark.cores.max=4" --conf "spark.executor.cores=2"

谢谢,是的,我们之所以做一个独立的是因为我们有3个流媒体作业,它们相互馈送,为了测试,我们现在只使用1个盒子。所以我们也只是在做--master local[4]我尝试在我的独立环境中使用相同的--num executors”属性,但它不起作用,当我在纱线集群中尝试时,效果很好。看起来它只是用于纱线展开。您只能使用“spark.cores.max”和“spark.executor.cores”属性来控制独立部署中的执行器数量。--num executors只是一个参数。看看这个问题,恼人的是,
--num executors
仍然被文档随机引用,有一些测试覆盖率,并且被愉快地接受为一个选项。还有很多清洁工作要做。完美答案!您必须设置spark.cores.max或spark.deploy.defaultCores