当前位置:  开发笔记 > 编程语言 > 正文

Apache Spark中的spark.storage.memoryFraction设置

如何解决《ApacheSpark中的spark.storage.memoryFraction设置》经验,为你挑选了1个好方法。

根据Spark文档

spark.storage.memoryFraction:用于Spark的内存缓存的Java堆的分数.这不应该大于JVM中的"旧"对象生成,默认情况下会给出0.6的堆,但如果配置自己的旧生成大小,则可以增加它.

我找到了几个博客和文章,建议在纱线模式下将其设置为零.为什么这比设置接近1更好?一般来说,它的合理价值是什么?



1> Joe Widen..:

Spark执行器设置为3个区域.

    存储 - 保留用于缓存的内存

    执行 - 为对象创建保留的内存

    执行者开销.

在Spark 1.5.2及更早版本中:

spark.storage.memoryFraction设置1和2的内存比率.默认值为.6,因此60%的已分配执行程序内存保留用于缓存.根据我的经验,我只发现这个数字减少了.通常,当开发人员遇到GC问题时,应用程序在对象中有更大的"流失",并且优化的第一个位置之一是更改memoryFraction.

如果您的应用程序没有缓存任何数据,那么您应该将其设置为0.不知道为什么那个特定于YARN,你能发表文章吗?

在Spark 1.6.0及更高版本中:

内存管理现已统一.存储和执行都共享堆.所以这不再适用了.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有