您的位置:首页 > 其它

Spark executor.memory

2015-12-04 21:38 399 查看

参考:

1.Setting spark.executor.memory problem

2.How to set Spark executor memory?

3.How to set Apache Spark Executor memory

Setting spark.executor.memory problem

问题:

在local mode下配置环境出错:

//出错代码:
val conf = new SparkConf()
.setMaster("local")
.setAppName("app")
.set("spark.executor.momory","2g")
.set("spark.storage.memoryFraction","0.5")

val sc = new SparkContext(conf)


程序不工作,在Spark UI 这个变量可能被设置了,但是memory store 还是0.5 * 512MB(默认的 spark.executor.memory) 而不是 0.5*2GB。

14/08/05 15:34:00 INFO MemoryStore: MemoryStore started with capacity 245.8 MB.


回答:

对local mode,你只有一个executor,这个executor就是你的driver,所以要设置driver’s memory 而不是executor’s memory.

这就是说,在local mode中,run spark-submit的时候,一个JVM已经通过默认的memory设置运行了,所以在conf中设置
spark.driver.memory
实际上不会发生任何事。

需要这样:

bin/spark-submit –driver-memory 2g –class your.class.here app.jar

这样就会启动2G的JVM而不是默认的512MB。

Clarification:

you’ll need to pass in –driver-memory not just for local mode, but for any application you’re launching with “client” deploy mode

澄清:不只是本地模式,而是对于任何“客户端”部署模式启动的应用程序,你需要通过设置driver-memory 来启用。

2.How to set Spark executor memory?

问题:

已经设置spark.executor.memory 为 2048m;

在UI “Environment”page 已经被正确设置,但是在executor页面,只有一个executor,memory为265.4MB,Why not 256MB

?

回答:

“executor”的列表里也包括了driver ,driver的ID是
<driver>
,这个process不是由Spark启动的,所以它不会被spark.executor.memory影响。

如果通过spark-submit启动driver,最大内存可以由
spark.driver.memory
或者
--driver-memory
控制。

If you start it as a plain old Java program, use the usual -Xmx Java flag.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: