如果我有可能配置具有大量内存的spark - 我应该使用多少?
有些人说除了32 GB / executor之外的任何内存都没有帮助,因为无法压缩JVM地址。)
假设我可以为火花/节点提供大约200 GB的内存,我应该在32 GB RAM之前创建一个执行程序,即每个工作者有多个执行程序吗?或者每个节点有大量的RAM是否更好?
答案 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/