sam*_*est 5 hadoop-yarn apache-spark
我们在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独立模式时强制多个执行器(从而解决注释)的一种方法是将总执行器核心和执行器核心配置传递给spark -提交,并使用脚本自动计算总执行器核心数:
total_executor_cores=`expr ${num_executors} \* ${executor_cores}`
Run Code Online (Sandbox Code Playgroud)
现在,如果您无法获得所需的执行者数量,您将“等待”并且作业将无法开始。
对于 YARN 模式来说,存在重复信息这种相互冲突的论点是相当烦人的。
注意:使用自动缩放集群时,您需要避免通过总核心数控制执行器数量,而是通过自动缩放设置控制节点数量。
| 归档时间: |
|
| 查看次数: |
2181 次 |
| 最近记录: |