Spark:MEMORY_ONLY_SER_2 - 奇怪的内存行为

Posted

技术标签:

【中文标题】Spark:MEMORY_ONLY_SER_2 - 奇怪的内存行为【英文标题】:Spark: MEMORY_ONLY_SER_2 - strange memory behavior 【发布时间】:2016-03-10 22:02:54 【问题描述】:

我使用 storageLevel = MEMORY_ONLY_SER_2 存储 RDD,以防万一一个执行器丢失,还有另一个数据副本。

然后我发现了一些奇怪的东西:

    当我使用 storageLevel = MEMORY_ONLY_SER (1xReplicated) 时,2xReplicated RDD 的 Size in Memory 似乎相同 即使我还有很多剩余的存储内存,缓存的分数也无法达到 100%。

我是否正确理解 storageLevel = MEMORY_ONLY_SER_2?为什么 2xReplicated 的 Size in Memory 没有 1xReplicated 的两倍?谢谢!

【问题讨论】:

【参考方案1】:

我猜可能你所有的缓存内存都用完了,所以不管你用了多少次复制。

不知道给每个executor分配了多少内存,如果分配很多,可以增加spark.storage.memoryFraction的值,默认值为0.6

如果您只是为了验证MEMORY_ONLY_SER_2 的成本是否是MEMORY_ONLY_SER 的两倍,您可以使用一个小型数据集。

【讨论】:

以上是关于Spark:MEMORY_ONLY_SER_2 - 奇怪的内存行为的主要内容,如果未能解决你的问题,请参考以下文章

Spark 调优之RDD持久化级别及kryo序列化性能测试

大数据技术之_19_Spark学习_05_Spark GraphX 应用解析 + Spark GraphX 概述解析 + 计算模式 + Pregel API + 图算法参考代码 + PageRank(

大数据技术之_19_Spark学习_02_Spark Core 应用解析+ RDD 概念 + RDD 编程 + 键值对 RDD + 数据读取与保存主要方式 + RDD 编程进阶 + Spark Cor

大数据技术之_27_电商平台数据分析项目_02_预备知识 + Scala + Spark Core + Spark SQL + Spark Streaming + Java 对象池

不清楚在 aws cloudformation yaml 模板中添加 --conf spark.jars.packages=org.apache.spark:spark-avro_2.11:2.4.4

应用程序_(状态:接受)的应用程序报告永远不会结束 Spark 提交(在 YARN 上使用 Spark 1.2.0)