无法设置 Spark 内存

Yum*_*i F 2 java memory apache-spark rdd

我正在尝试为本地运行的 Spark 应用程序设置最大内存。我尝试了很多不同的方法。

在节目中

SparkConf conf = new SparkConf();
conf.setMaster("local[2]");
conf.setAppName("app");     
conf.set("spark.executor.memory", "4G");
conf.set("spark.driver.memory", "4G");
sc = new JavaSparkContext(conf);
Run Code Online (Sandbox Code Playgroud)

并且在执行时

./bin/spark-submit.cmd ./local/app.jar --master local[2] --driver-memory 4G
Run Code Online (Sandbox Code Playgroud)

但我总是得到以下

INFO [MemoryStore] MemoryStore started with capacity 366.3 MB
Run Code Online (Sandbox Code Playgroud)

Spark 将 RDD 溢出到磁盘。Spark 版本是 2.0。

我能做什么?

Tod*_*lev 5

在本地模式下,您的执行程序是您的驱动程序,因此它只是您的堆的一小部分。到spark-submit执行时,JVM 已经启动,因此您需要传入--driver-memoryarg。例如:

spark-submit --driver-memory 4g --class MyClass spark-app-1.0.jar
Run Code Online (Sandbox Code Playgroud)

将用 4G 启动 JVM。

订单似乎也很重要,即--driver-memory需要先到--class

  • 这帮助了我!参数的顺序确实很重要! (2认同)
  • 这对我有帮助!对于 PySpark,`spark-submit --driver-memory 30g xxx.py` 运行良好,但 `spark-submit xxx.py --driver-memory 30g` 失败 (2认同)