我在单个节点中运行spark。
我的应用程序(java-web)使用的内存少于可用内存。我发现这个帖子很有用。
从链接
对于本地模式,您只有一个执行程序,而此执行程序是您的 驱动程序,所以你需要设置驱动程序的内存。 *那说,在 本地模式,当你运行spark-submit时,JVM已经存在 使用默认内存设置启动,进行设置 " spark.driver.memory"在你的conf中,你真的为你做了什么。 相反,您需要按如下方式运行spark-submit
bin / spark-submit --driver-memory 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
答案 0 :(得分:1)
您只需在Spark的配置文件( spark/conf/spark-defaults.sh
)中配置这些参数即可。顺便说一句,除了你想每次都改变它之外,这是比spark-shell中的配置更好的方式。
答案 1 :(得分:0)
使用spark-env.sh
将无法在您的设置中使用,因为您使用的是使用自己的运行时环境的Web应用程序,而后者又看不到环境变量。您也不能使用spark-submit
。
鉴于关于使用本地模式的评论,这意味着您需要调整Web应用程序在其中运行的JVM并停止担心Spark。它将从JVM中获取内存设置,因为所有服务都在单个JVM上运行。