我们可以为Spark自己分配更多的内存而不是自己的群集吗?

时间:2016-04-19 05:05:16

标签: apache-spark

假设spark群集是一个独立的群集。 Master拥有1GB内存,slave拥有1GB内存。

向群集提交应用程序时,可以指定驱动程序和工作程序可以拥有的内存量。那么是否有可能为驱动程序指定一些更高的值,如10Gb,为工人指定10Gb?

我的意思是如果您提交的程序需要的内存多于自己的群集,会发生什么。 (我们假设物理计算机有足够的内存)

2 个答案:

答案 0 :(得分:0)

Spark有一个名为" Dynamic Allocation"的功能。它可以使用

打开
spark.dynamicAllocation.enabled = true

这里有更多细节 http://www.slideshare.net/databricks/dynamic-allocation-in-spark

答案 1 :(得分:0)

如果您请求的内存超过资源管理器可访问的内存,则不会为您分配所有工作人员。资源管理器将尽可能多地分配,如果至少分配了1个worker,则程序将能够运行(至少在YARN上)。您的资源管理器不会分配内存少于请求的内存(或驱动程序)。没有部分工人这样的事情。