高内存的火花 - 每个节点使用多个执行程序?

时间:2017-04-06 18:15:53

标签: apache-spark memory heap-memory

如果我有可能配置具有大量内存的spark - 我应该使用多少?

有些人说除了32 GB / executor之外的任何内存都没有帮助,因为无法压缩JVM地址。)

假设我可以为火花/节点提供大约200 GB的内存,我应该在32 GB RAM之前创建一个执行程序,即每个工作者有多个执行程序吗?或者每个节点有大量的RAM是否更好?

1 个答案:

答案 0 :(得分:2)

理想情况下,我们应该选择多个执行器,每个执行器的容量应小于或等于32GB(即16、17、18 ...),而不是一个具有200GB内存的执行器。

为获得更好的吞吐量,建议每个执行者使用3到5个核心,而不是每个执行者使用10或15个核心(I / O问题)。考虑到最好使用32GB或更少的内存,这样每个内核将处理5至6GB而不是10至20GB。

参考

http://site.clairvoyantsoft.com/understanding-resource-allocation-configurations-spark-application/

https://github.com/vaquarkhan/vaquarkhan/wiki/How-to-calculate-node-and-executors-memory-in-Apache-Spark