使用local [*]时增加Spark内存

BAR*_*BAR 8 scala apache-spark

使用local [*]时如何增加Spark内存?

我尝试像这样设置内存:

  val conf = new SparkConf()
    .set("spark.executor.memory", "1g")
    .set("spark.driver.memory", "4g")
    .setMaster("local[*]")
    .setAppName("MyApp")
Run Code Online (Sandbox Code Playgroud)

但我仍然得到:

MemoryStore: MemoryStore started with capacity 524.1 MB
Run Code Online (Sandbox Code Playgroud)

这是否与此有关:

.setMaster("local[*]")
Run Code Online (Sandbox Code Playgroud)

BAR*_*BAR 7

我能够通过运行SBT来解决这个问题:

sbt -mem 4096
Run Code Online (Sandbox Code Playgroud)

然而,MemoryStore的大小只有一半.仍在调查这一部分的位置.

  • 总存储内存由 spark.storage.memoryFraction * spark.storage.safetyFraction 计算 - 默认为 0.6 和 0.9 (2认同)

Gil*_*pie 6

假设您正在使用spark-shell ..在您的应用程序中设置spark.driver.memory不起作用,因为您的驱动程序进程已使用默认内存启动。

您可以使用以下方法启动您的spark-shell:

./bin/spark-shell --driver-memory 4g
Run Code Online (Sandbox Code Playgroud)

或者您可以在spark-defaults.conf中进行设置:

spark.driver.memory 4g
Run Code Online (Sandbox Code Playgroud)

如果使用spark-submit启动应用程序,则必须指定驱动程序内存作为参数:

./bin/spark-submit --driver-memory 4g --class main.class yourApp.jar
Run Code Online (Sandbox Code Playgroud)


小智 6

在 spark 2.x 中,你可以使用 SparkSession,它看起来像:

        val spark= new SparkSession()
        .config("spark.executor.memory", "1g")
        .config("spark.driver.memory", "4g")
        .setMaster("local[*]")
        .setAppName("MyApp")
Run Code Online (Sandbox Code Playgroud)