Geo*_*ler 12 apache-spark apache-spark-sql spark-dataframe apache-spark-2.0 off-heap
我认为通过项目Tungesten的集成,spark会自动使用堆内存.
什么是spark.memory.offheap.size和spark.memory.offheap.enabled?我是否需要手动指定Tungsten的关闭堆内存量?
kas*_*sur 20
Spark/Tungsten使用编码器/解码器将JVM对象表示为高度专业化的Spark SQL Types对象,然后可以以高性能方式对其进行序列化和操作.内部格式表示非常高效且对GC内存利用率很友好.
因此,即使在默认的堆上模式下运行,Tungsten也可以减轻JVM对象内存布局和GC运行时间的巨大开销.在该模式下,钨会为了内部目的而在堆上分配对象,并且分配内存块可能很大,但它的发生频率要低得多,并且可以顺利地保持GC生成过渡.这几乎消除了考虑在堆外移动此内部结构的需要.
在我们开启和关闭此模式的实验中,我们没有看到相当大的运行时间改进.但是你在off-heap模式下得到的是需要仔细设计JVM进程之外的内存分配.当您需要允许并计划除JVM进程配置之外的其他内存块时,这可能会在YARN,Mesos等容器管理器中带来一些困难.
同样在堆外模式下,Tungsten使用sun.misc.Unsafe,这在部署方案中可能不是所希望的甚至可能的(例如,使用限制性的java安全管理器配置).
当他被问到类似的问题时,我也正在和Josh Rosen 分享一个带时间标签的视频会议演讲.
| 归档时间: |
|
| 查看次数: |
6787 次 |
| 最近记录: |