我正在尝试调整Spark的内存参数 . 我试过了:
sparkSession.conf.set("spark.memory.storageFraction","0.1") //sparkSession has been created
提交作业并检查Spark UI后 . 我发现“存储内存”仍然和以前一样 . 所以上面没有用 .
设置“spark.memory.storageFraction”的正确方法是什么?
我正在使用Spark 2.0 .
我遇到同样的问题,从spark github读取一些代码后我认为spark ui上的“存储内存”有误导性,它并不表示存储区域的大小,实际上它代表了maxMemory:
maxMemory = (executorMemory - reservedMemory[default 384]) * memoryFraction[default 0.6]
检查这些更多细节↓↓↓
spark ui executors-page source code
getMaxmemory source code
从Spark 1.6开始,执行和存储内存管理是统一的 . 旧模型中使用的所有内存分数现已弃用,不再读取 . 如果您希望使用旧内存管理,则可以明确启用 spark.memory.useLegacyMode (不推荐) .
spark.memory.useLegacyMode
所以在我看来,火花2.0继续这些设置 .
2 回答
我遇到同样的问题,从spark github读取一些代码后我认为spark ui上的“存储内存”有误导性,它并不表示存储区域的大小,实际上它代表了maxMemory:
检查这些更多细节↓↓↓
spark ui executors-page source code
getMaxmemory source code
从Spark 1.6开始,执行和存储内存管理是统一的 . 旧模型中使用的所有内存分数现已弃用,不再读取 . 如果您希望使用旧内存管理,则可以明确启用
spark.memory.useLegacyMode
(不推荐) .所以在我看来,火花2.0继续这些设置 .