2015-09-21 11 views
5

Come si aumenta la memoria di spunta quando si utilizza il locale [*]?Aumenta la memoria di spunta quando si utilizza locale [*]

ho provato a fissare la memoria in questo modo:

val conf = new SparkConf() 
    .set("spark.executor.memory", "1g") 
    .set("spark.driver.memory", "4g") 
    .setMaster("local[*]") 
    .setAppName("MyApp") 

Ma ho ancora:

MemoryStore: MemoryStore started with capacity 524.1 MB 

Questo ha qualcosa a che fare con:

.setMaster("local[*]") 
+0

Hai provato ad aumentare 'spark.executor.memory'? –

+0

. SetMaster ("local [*]") serve per utilizzare il core disponibile sul computer locale per eseguire l'elaborazione –

risposta

4

sono stato in grado di risolvere questo eseguendo SBT con:

sbt -mem 4096 

Tuttavia il MemoryStore è metà della dimensione. Sto ancora esaminando dove si trova questa frazione.

+0

La memoria di archiviazione totale viene calcolata da spark.storage.memoryFraction * spark.storage.safetyFraction - che sono 0,6 e 0,9 di default – Gillespie

+0

@Gillespie Grazie – BAR

+0

Questa risposta non è corretta . Questo non è il modo in cui si aumenta la memoria quando si esegue l'app in un cluster locale autonomo.Tuttavia i commenti di @Gillespie sono molto utili + la sua risposta è il modo per farlo! – eliasah

4

Supponendo che si stai usando la scintilla shell .. l'impostazione spark.driver.memory nella tua applicazione non funziona perché il tuo d il processo river è già avviato con la memoria predefinita.

è possibile lanciare il vostro scintilla scocca utilizzando:

./bin/spark-shell --driver-memory 4g 

oppure si può impostare in scintilla defaults.conf:

spark.driver.memory 4g 

Se aprite un'applicazione utilizzando scintilla presentare , è necessario specificare la memoria del driver come argomento:

./bin/spark-submit --driver-memory 4g --class main.class yourApp.jar 
+0

Non sto utilizzando la shell. – BAR

+0

quindi è necessario fornire la memoria del driver come argomento quando si avvia l'applicazione. Il punto è che quando il tuo SparkConf viene letto nella tua applicazione, è troppo tardi. – Gillespie

+0

Quindi dovrebbe andare in SBT? – BAR

1

La frazione del cumulo utilizzato per il memoriale di Spark la cache è predefinita di 0,6, quindi se hai bisogno di più di 524,1 MB, devi aumentare l'impostazione spark.executor.memory :)

Tecnicamente potresti anche aumentare la frazione utilizzata per la cache di memoria di Spark, ma credo che sia scoraggiato o in richiede meno di fare qualche configurazione aggiuntiva. Vedi https://spark.apache.org/docs/1.0.2/configuration.html per maggiori dettagli.

1

Provato --driver-memory 4g, , non ha funzionato per aumentare la memoria di lavoro. Tuttavia, ho notato che bin/spark-submit stava recuperando _JAVA_OPTIONS, impostandolo su -Xmx4g risolto. Io uso jdk7

Problemi correlati