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

时间:2015-09-21 07:49:13

标签: scala apache-spark

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

我尝试像这样设置内存:

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

但我仍然得到:

MemoryStore: MemoryStore started with capacity 524.1 MB

这是否与此有关:

.setMaster("local[*]")

9 个答案:

答案 0 :(得分:6)

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

你可以使用:

启动你的spark-shell
./bin/spark-shell --driver-memory 4g

或者你可以在spark-defaults.conf中设置它:

spark.driver.memory 4g

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

./bin/spark-submit --driver-memory 4g --class main.class yourApp.jar

答案 1 :(得分:6)

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

sbt -mem 4096

然而,MemoryStore的大小只有一半。仍在研究这一部分的位置。

答案 2 :(得分:2)

在spark 2.x中,您可以使用SparkSession,其外观如下:

<button (click)="this[button.onClick]">Click Me</button>

答案 3 :(得分:1)

用于Spark的内存缓存的堆的比例默认为0.6,所以如果你需要超过524,1MB,你应该增加spark.executor.memory设置:)

从技术上讲,你也可以增加用于Spark的内存缓存的分数,但我相信这是不鼓励的,或者至少要求你做一些额外的配置。有关详细信息,请参阅https://spark.apache.org/docs/1.0.2/configuration.html

答案 4 :(得分:1)

尝试--driver-memory 4g--executor-memory 4g,既没有努力增加工作记忆。但是,我注意到bin/spark-submit正在接收_JAVA_OPTIONS,将其设置为-Xmx4g解决了它。我用jdk7

答案 5 :(得分:1)

应用程序启动 link后,您将无法更改驱动程序内存。

答案 6 :(得分:0)

版本

spark-2.3.1

源代码

org.apache.spark.launcher.SparkSubmitCommandBuilder:267

String memory = firstNonEmpty(tsMemory, config.get(SparkLauncher.DRIVER_MEMORY),
System.getenv("SPARK_DRIVER_MEMORY"), System.getenv("SPARK_MEM"), DEFAULT_MEM);
cmd.add("-Xmx" + memory);

  1. SparkLauncher.DRIVER_MEMORY
  
    

-驱动程序内存2克

  
  1. SPARK_DRIVER_MEMORY
  

vim conf / spark-env.sh

     
    

SPARK_DRIVER_MEMORY =“ 2g”

  
  1. SPARK_MEM
  

vim conf / spark-env.sh

     
    

SPARK_MEM =“ 2g”

  
  1. DEFAULT_MEM
  

1g

答案 7 :(得分:-1)

要将内存分配给Spark:

在命令shell上:/ usr / lib / spark / bin / spark-shell --driver-memory = 16G --num-executors = 100 --executor-cores = 8 --executor-memory = 16G

答案 8 :(得分:-2)

/usr/lib/spark/bin/spark-shell --driver-memory=16G --num-executors=100 --executor-cores=8 --executor-memory=16G --conf spark.driver.maxResultSize = 2G