gpt4 book ai didi

apache-spark - 为什么Spark提交脚本spark-submit忽略 `--num-executors`?

转载 作者:行者123 更新时间:2023-12-04 21:40:26 25 4
gpt4 key购买 nike

我们有在YARN下运行的Spark 1.0.0,并且--num-executors似乎并没有增加执行程序或使用的节点的数量。我说我想要8,但是我通常以3到5结尾。输出中没有错误,这是我期望节点向下且无法讲话的结果。

注意:如果您不是在YARN下运行,那么num-executors将被忽略,例如 Spark 独立模式。请参阅已接受的答案以获取解决方案和评论。

更新:如果我要X资源,我想要X资源,如果我不能拥有X资源,我想被放在队列中或给出某种错误消息。这是因为如果我没有X资源,我的工作就会失败-我知道在工作失败之前我需要多少资源。我不想在我的工作上增加一些额外的层来检查将要给我多少执行者和节点,以便它可以在任务自行炸毁之前优雅地杀死它。因此,问题的第二部分是“1)是否有一种方法可以告诉YARN/Spark如果我无法获得想要的执行程序而失败?2)强制停止YARN在同一节点上放置多个执行程序”

(在0.9.0中,这不是问题,N个节点意味着N个工作人员和工作只会排队)

最佳答案

所以是的,在我的原始情况下(即在YARN下)不尊重--num-executors的原因是由于某种错误行为,如果这样做会使您超过最大内核/内存,它不会给您所有执行者。

(a)防止这种情况(从而回答我的第二个问题),并且(b)在运行spark独立模式(并因此解决注释)时强制多个执行程序的一种方法是传递总的执行程序核心和执行程序核心配置以进行触发-submit,并使用脚本自动计算总执行者核心数:

total_executor_cores=`expr ${num_executors} \* ${executor_cores}`

现在,如果您无法获得num executors,那么您将得到“等待”,并且该作业将无法开始。

对于YARN模式,具有这种矛盾的论点是重复的信息是很烦人的。

注意:使用自动扩展群集时,您将要避免通过总内核控制执行程序的数量,而是通过自动扩展设置来控制节点的数量。

关于apache-spark - 为什么Spark提交脚本spark-submit忽略 `--num-executors`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27818469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com