2015-11-19 61 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

相關問題