Spark Driver的内存如何影响Executor资源?

时间:2017-12-06 16:14:04

标签: apache-spark

我正在学习如何通过阅读 High Performance Spark 来配置Spark应用程序,并且提到的一句话令我感到困惑:

  

根据我的经验,设置Spark驱动程序内存的良好启发式方法是   只是可能导致内存错误的最低可能值   驱动程序,即为执行程序提供最大可能资源。

我的理解是驱动程序存在于自己的节点中,执行程序在工作节点上独立存在。我本以为我可以最大限度地提高驱动程序内存,而不必担心它会影响执行程序。

这本书的建议是真的吗?如果是,驱动程序内存为何/如何影响执行程序资源?

2 个答案:

答案 0 :(得分:1)

排除local模式,驱动程序可与执行程序共存:

  • 在集群模式下,驱动程序在其中一个工作节点上运行。
  • 在客户端模式下,如果已在其中一个工作节点上启动。

在这两种情况下,驱动程序都可以与执行程序竞争相同的资源池。在第一种情况下,它发生在资源管理器级别,在第二种情况下发生在主机系统级别。

第二种情况不那么有趣,但是在第一种分配给驱动程序的资源上,会减少集群管理器可以为执行程序提供的池。

答案 1 :(得分:0)

  

Spark驱动程序的内存如何影响Executor资源?

它没有(除了一个驱动程序和执行程序都在同一台机器上运行的边缘情况)。

  

我的理解是驱动程序存在于自己的节点中,执行程序在工作节点上独立存在。我本以为我可以最大限度地提高驱动程序内存,而不必担心它会影响执行程序。

这也是我的理解,似乎找不到可能证明我们错误的部署方案。

我认为没有&#34的段落,即#34;部分会更有意义。

  

根据我的经验,设置Spark驱动程序内存的良好启发式只是可能的最低值,不会导致驱动程序中出现内存错误。

这完全没问题。