使用本地[*]时如何增加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[*]")
答案 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);
-驱动程序内存2克
vim conf / spark-env.sh
SPARK_DRIVER_MEMORY =“ 2g”
vim conf / spark-env.sh
SPARK_MEM =“ 2g”
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