2016-09-12 14 views
2

ローカルで動作するSparkアプリケーションの最大メモリを設定しようとしています。 私はさまざまな方法で試しました。プログラムスパークメモリを設定できません

SparkConf conf = new SparkConf(); 
conf.setMaster("local[2]"); 
conf.setAppName("app");  
conf.set("spark.executor.memory", "4G"); 
conf.set("spark.driver.memory", "4G"); 
sc = new JavaSparkContext(conf); 

そして

./bin/spark-submit.cmd ./local/app.jar --master local[2] --driver-memory 4G 

を実行するには

しかし、私は常に次の

INFO [MemoryStore] MemoryStore started with capacity 366.3 MB 

とスパークは、ディスクにRDDをこぼします。 スパークバージョンは2.0です。

私は何ができますか?

+2

の前に来る必要があり、すなわち--driver-memoryは関係しているようだあなたは、小さな「G」をしようとしたのですか? – numX

+0

@numX小さなgを試したところ、結果は同じです。 –

答えて

2

ローカルで実行している場合、sparkはより多くのメモリを使用せずにJavaプロセスを使用できます。あなたは、余分なメモリのVMのparamsを使用してアプリケーションを実行してみてください :-Xms2048m -Xmx4096m

+0

これも機能しません。しかし、私はSparkのバージョンを1.6.1に変更しました。今はOKです。 –

0

2.

スパークが「-Xms」を禁じると「-Xmx」へspark.driver.memoryを変換スパークでのローカル実行中のインスタンスのspark.driver.memory作品。

1

ローカルモードでは、エグゼキュータがドライバであるため、ヒープの一部です。 ​​が実行されるまでに、JVMは既に起動されているので、--driver-memory argを渡す必要があります。例:

spark-submit --driver-memory 4g --class MyClass spark-app-1.0.jar 

4GでJVMを起動します。

注文も--class

+0

これは私を助けました!議論の順序は本当に重要です! – CedricDeBoom

関連する問題