首页 文章

在Spark中设置“spark.memory.storageFraction”不起作用

提问于
浏览
2

我正在尝试调整Spark的内存参数 . 我试过了:

sparkSession.conf.set("spark.memory.storageFraction","0.1") //sparkSession has been created

提交作业并检查Spark UI后 . 我发现“存储内存”仍然和以前一样 . 所以上面没有用 .

设置“spark.memory.storageFraction”的正确方法是什么?

我正在使用Spark 2.0 .

2 回答

  • 2

    我遇到同样的问题,从spark github读取一些代码后我认为spark ui上的“存储内存”有误导性,它并不表示存储区域的大小,实际上它代表了maxMemory:

    maxMemory =  (executorMemory - reservedMemory[default 384]) * memoryFraction[default 0.6]
    

    检查这些更多细节↓↓↓

    spark ui executors-page source code

    getMaxmemory source code

  • -2

    从Spark 1.6开始,执行和存储内存管理是统一的 . 旧模型中使用的所有内存分数现已弃用,不再读取 . 如果您希望使用旧内存管理,则可以明确启用 spark.memory.useLegacyMode (不推荐) .

    所以在我看来,火花2.0继续这些设置 .

相关问题