Apache spark 为什么在增加memoryOverhead后收集大型数据集成功 简介
在apachespark文档中,我看到内存分为三个组,可以使用几个参数进行配置。 假设我们有一台AWS EMR机器m4.xlarge。在这台机器上,纱线的最大分配内存为12288 MB。使用这些配置参数:Apache spark 为什么在增加memoryOverhead后收集大型数据集成功 简介,apache-spark,apache-spark-dataset,Apache Spark,Apache Spark Dataset,在apachespark文档中,我看到内存分为三个组,可以使用几个参数进行配置。 假设我们有一台AWS EMR机器m4.xlarge。在这台机器上,纱线的最大分配内存为12288 MB。使用这些配置参数: spark.(执行者|驱动者)。内存溢出=0.2 spark.(执行器|驱动器)。内存=10g spark.memory.fraction=0.6(默认值) spark.storage.fraction=0.3(默认值) 我得到: 内存开销=2G 执行器内存=10G 执行内存=3G(s
- spark.(执行者|驱动者)。内存溢出=0.2
- spark.(执行器|驱动器)。内存=10g
- spark.memory.fraction=0.6(默认值)
- spark.storage.fraction=0.3(默认值)
- 内存开销=2G
- 执行器内存=10G
- 执行内存=3G(
)spark.executor.memory*spark.memory.fraction*spark.storage.fraction
- 存储内存=3G(
)spark.executor.memory*spark.memory.fraction*spark.storage.fraction
- 用户内存=4G(
)spark.executor.memory*1-spark.memory.fraction
- 执行内存=3G(
提前谢谢 通过反复试验,唯一能够识别的是f.ex。在将数据收集到驱动程序内存时,开销需要能够保存数据,这表明collect会在开销中着陆
然而,广播变量需要放入
执行器内存中,内存头似乎不受此影响。可能重复的我不会说它是重复的。请阅读主要问题-我很惊讶,在增加内存开销后,大数据块的收集成功了。除此之外,我说的是spark.executor.memoryOverhead
而不是spark.warn.executor.memoryOverhead
。我会尽量把我的问题表达得更清楚。