如何在Web应用程序中为Spark设置内存?

时间:2015-11-19 08:47:32

标签: java apache-spark

我在单个节点中运行spark。

我的应用程序(java-web)使用的内存少于可用内存。我发现这个帖子很有用。

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

从链接

  

对于本地模式,您只有一个执行程序,而此执行程序是您的   驱动程序,所以你需要设置驱动程序的内存。 *那说,在   本地模式,当你运行spark-submit时,JVM已经存在   使用默认内存设置启动,进行设置   " spark.driver.memory"在你的conf中,你真的为你做了什么。   相反,您需要按如下方式运行spark-submit

     

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

它建议使用memory-flagbin/spark-submit - 用于jar文件

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

我在spark-env.sh中设置了这些内容并运行source spark-env.sh但仍然没有变化

SPARK_EXECUTOR_MEMORY=10g
SPARK_WORKER_MEMORY=10g

2 个答案:

答案 0 :(得分:1)

您只需在Spark的配置文件( spark/conf/spark-defaults.sh )中配置这些参数即可。顺便说一句,除了你想每次都改变它之外,这是比spark-shell中的配置更好的方式。

答案 1 :(得分:0)

使用spark-env.sh将无法在您的设置中使用,因为您使用的是使用自己的运行时环境的Web应用程序,而后者又看不到环境变量。您也不能使用spark-submit

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