为不同的工作节点设置不同的执行程序内存限制

时间:2016-01-19 11:25:38

标签: apache-spark

我在独立部署模式下使用spark 1.5.2并使用脚本启动。执行程序内存通过' spark.executor.memory'设置。在conf / spark-defaults.conf中。这为所有工作节点设置了相同的内存限制。我想这样做可以为不同的节点设置不同的限制。我怎么能这样做?

(Spark 1.5.2,ubuntu 14.04)

谢谢,

1 个答案:

答案 0 :(得分:1)

我不相信有任何方法可以拥有异类大小的执行者。您可以限制工作节点的大小,但这实际上限制了工作人员可以在该框上分配的内存总量。

当您运行应用程序时,您只能在应用程序级别指定spark.executor.memory,每个执行程序为每个工作程序请求大量内存。

如果您的盒子尺寸不均匀,您可以将SPARK_WORKER_MEMORY设置为较小的数量,然后在较大的框上设置SPARK_WORKER_INSTANCES = 2,在较小的框上设置SPARK_WORKER_INSTANCES = 1。在这个例子中,我们假设您的较大的盒子比较小的盒子大两倍。然后,你将最终使用较大盒子上的所有内存和较小盒子上的所有内存,在较大的盒子上使用两倍的执行器。