Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 触发堆内存配置和更新_Apache Spark_Apache Spark Sql_Spark Dataframe_Apache Spark 2.0_Off Heap - Fatal编程技术网

Apache spark 触发堆内存配置和更新

Apache spark 触发堆内存配置和更新,apache-spark,apache-spark-sql,spark-dataframe,apache-spark-2.0,off-heap,Apache Spark,Apache Spark Sql,Spark Dataframe,Apache Spark 2.0,Off Heap,我认为通过集成Tungesten项目,spark将自动使用堆外内存 启用spark.memory.offheap.size和spark.memory.offheap.size的原因是什么?我是否需要在此处手动指定Wonder的堆外内存量?Spark/Wonder使用编码器/解码器将JVM对象表示为高度专业化的Spark SQL类型对象,然后这些对象可以以高性能的方式序列化和操作。内部格式表示是高效且友好的GC内存利用率 因此,即使在默认的堆上模式下操作,也可以减轻JVM对象内存布局和GC操作时间

我认为通过集成Tungesten项目,spark将自动使用堆外内存


启用spark.memory.offheap.size和spark.memory.offheap.size的原因是什么?我是否需要在此处手动指定Wonder的堆外内存量?

Spark/Wonder使用编码器/解码器将JVM对象表示为高度专业化的Spark SQL类型对象,然后这些对象可以以高性能的方式序列化和操作。内部格式表示是高效且友好的GC内存利用率

因此,即使在默认的堆上模式下操作,也可以减轻JVM对象内存布局和GC操作时间的巨大开销。在这种模式下,worth确实为其内部目的在堆上分配对象,分配内存块可能很大,但发生的频率要低得多,并且在GC生成转换过程中平稳地生存下来。这几乎消除了考虑将这个内部结构移出堆的需要。 在我们的实验中,在这种模式打开和关闭的情况下,我们没有看到运行时有很大的改进。但脱离堆模式打开后,需要仔细设计JVM进程外部的内存分配。当您需要在JVM进程配置之外允许并计划额外的内存块时,这可能会给容器管理器(如纱线、Mesos等)带来一些困难

另外,在堆外模式下,Wonder使用sun.misc.Unsafe,这在部署场景中可能不是理想的,甚至不可能(例如,使用限制性java security manager配置)


当Josh Rosen被问到类似的问题时,我还分享了一个带有时间标签的视频会议。

spark.memory.offheap.size和spark.memory.offheap.enabled有什么用? spark.memory.offHeap.enabled:用于启用/禁用堆外内存使用的参数。 spark.memory.offHeap.size:堆外分配(来自本机内存)的内存总量(以字节为单位)。它对堆内存使用没有影响,同时确保不超过执行器的总限制

我是否需要在此处手动指定钨的堆外内存量? 对 除了启用堆外内存,您还需要手动设置其大小,以便为spark应用程序使用堆外内存。请注意,堆外内存模型仅包括存储内存和执行内存

下图是堆外内存运行时的抽象概念

•如果启用了堆外内存,则执行器中将同时具有堆内内存和堆外内存

•执行器的存储内存=堆上存储内存+堆外存储内存

•执行器的执行内存=堆上的执行内存+堆外的执行内存