2015-11-19 58 views
0

我在单节点运行spark。如何在Web应用程序中为Spark设置内存?

我的应用程序(java-web)使用的内存少于可用..我发现这个线程是有用的。

http://apache-spark-user-list.1001560.n3.nabble.com/Setting-spark-executor-memory-problem-td11429.html

从链接

对于本地模式下,您只有一个执行者,这是执行你的 驱动程序,所以你需要设置驱动程序的内存来代替。 *也就是说,在 本地模式下,到运行spark-submit时,JVM已经以默认内存设置启动了 ,因此在conf中设置 “spark.driver.memory”实际上不会做任何事情为你。 相反,你需要运行火花提交如下

斌/火花提交--driver-2G内存--class your.class.here app.jar

它建议使用memory-flag以及bin/spark-submit - 对于jar文件

但我正在运行一个maven-web应用程序。我可以用spark-submit来运行这个吗?

我设置这些在spark-env.sh和运行source spark-env.sh但仍然没有改变

SPARK_EXECUTOR_MEMORY=10g 
SPARK_WORKER_MEMORY=10g 

回答

1

你可以只配置在Spark中的配置文件(spark/conf/spark-defaults.sh)这些参数。顺便说一下,除非每次都想更改它,否则这是一种比spark-shell中的配置更好的方法。

+0

我在'spark-env.sh'中设置了2个参数(问题已更新),但它不受影响。 – Anil

+0

我需要添加其他任何东西吗? – Anil

+0

对不起,它应该是驱动程序,所以它在'spark/conf/spark-defaults.sh'文件中。 – ray6080

0

使用spark-env.sh在您的设置中不起作用,因为您使用的Web应用程序使用自己的运行时环境,而该环境并未看到环境变量。你也不能使用​​。

鉴于使用本地模式的评论,这意味着您需要调整Web应用运行的JVM并停止担心Spark。由于所有服务都在单个JVM上运行,因此会从JVM中获取内存设置。

+0

这也行不通。正如我在上面提到的链接中给出的那样,当我告诉spark conf来设置'.set(“spark.executor.memory”,[memory-size])''JVM已经启动并运行一些内存..我试过了但未能增加内存 – Anil

+0

你使用什么Spark模式?你的主网址如何? –

+0

单节点。和本地主机。我使用'setMaster(“localhost”)' – Anil

相关问题