【问题标题】:Setting "spark.memory.storageFraction" in Spark does not work在 Spark 中设置“spark.memory.storageFraction”不起作用
【发布时间】:2017-04-20 06:51:20
【问题描述】:

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

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

在我提交作业并检查 Spark UI 之后。我发现“存储记忆”还是和以前一样。所以上面没有工作。

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

我使用的是 Spark 2.0。

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

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

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

    查看这些了解更多详情↓↓↓

    spark ui executors-page source code

    getMaxmemory source code

    【讨论】:

    • 现在在 Spark UI 中修复了吗? Spark UI 的 Executors 选项卡中的存储内存是什么意思?
    【解决方案2】:

    根据docs spark.memory.storageFraction 选项仅配置“存储内存量免疫驱逐,而不是上限。实际上所有不用于执行的内存都可以用于存储和存储内存的上限,假设没有内存用于执行,因此是:(executor memory - reserved memory) * memoryFraction)。 另见Memory Management Overview

    在 UI 中列的工具提示中,他们正确地声明它显示了“用于存储的总可用内存...”

    这意味着您不会在您可能正在查看的 UI 列中看到 spark.memory.storageFraction 的效果。

    【讨论】:

      猜你喜欢
      • 2017-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      • 2021-07-25
      • 2013-07-10
      • 2018-03-29
      • 2013-05-24
      相关资源
      最近更新 更多