为什么我们需要的执行者多于Spark中的机器数量?

时间:2018-10-05 18:37:27

标签: scala apache-spark pyspark

请求的执行者多于集群中可用的机器的背后的逻辑是什么?

在理想情况下,我们希望每台机器上有1个执行器(= 1 jvm),而每台机器上不少。 如果没有,那为什么呢?

预先感谢

1 个答案:

答案 0 :(得分:1)

  

在理想情况下,我们希望每台机器上有1个执行器(= 1 jvm),而每台机器上不少。

不一定。根据可用内存量和JVM实现,单独的虚拟机可能是一个更好的选择,尤其是:

  • 改善大型计算机的内存管理-例如,参见Why 35GB Heap is Less Than 32GB – Java JVM Memory Oddities
  • 在不稳定的工作负载下提高容错能力-如果一个JVM发生故障,您将失去所有相应线程的工作,因此,保持较小的体积可以使事物处于受控状态。
  • 要最大程度地减少GC调整所需的精力-调整大型实例可能非常痛苦。