我正在学习如何通过阅读 High Performance Spark 来配置Spark应用程序,并且提到的一句话令我感到困惑:
根据我的经验,设置Spark驱动程序内存的良好启发式方法是 只是可能导致内存错误的最低可能值 驱动程序,即为执行程序提供最大可能资源。
我的理解是驱动程序存在于自己的节点中,执行程序在工作节点上独立存在。我本以为我可以最大限度地提高驱动程序内存,而不必担心它会影响执行程序。
这本书的建议是真的吗?如果是,驱动程序内存为何/如何影响执行程序资源?
答案 0 :(得分:1)
排除local
模式,驱动程序可与执行程序共存:
在这两种情况下,驱动程序都可以与执行程序竞争相同的资源池。在第一种情况下,它发生在资源管理器级别,在第二种情况下发生在主机系统级别。
第二种情况不那么有趣,但是在第一种分配给驱动程序的资源上,会减少集群管理器可以为执行程序提供的池。
答案 1 :(得分:0)
Spark驱动程序的内存如何影响Executor资源?
它没有(除了一个驱动程序和执行程序都在同一台机器上运行的边缘情况)。
我的理解是驱动程序存在于自己的节点中,执行程序在工作节点上独立存在。我本以为我可以最大限度地提高驱动程序内存,而不必担心它会影响执行程序。
这也是我的理解,似乎找不到可能证明我们错误的部署方案。
我认为没有&#34的段落,即#34;部分会更有意义。
根据我的经验,设置Spark驱动程序内存的良好启发式只是可能的最低值,不会导致驱动程序中出现内存错误。
这完全没问题。