2015-12-14 11 views
5

Sto correndo una scintilla in streaming applicazione su Filati, funziona bene per diversi giorni e dopo che ho riscontrato un problema, il messaggio di errore dalla lista filato di seguito:Spark streaming sul filo - Container in esecuzione oltre i limiti di memoria fisica

Application application_1449727361299_0049 failed 2 times due to AM Container for appattempt_1449727361299_0049_000002 exited with exitCode: -104 
For more detailed output, check application tracking page:https://sccsparkdev03:26001/cluster/app/application_1449727361299_0049Then, click on links to logs of each attempt. 
Diagnostics: Container [pid=25317,containerID=container_1449727361299_0049_02_000001] is running beyond physical memory limits. Current usage: 3.5 GB of 3.5 GB physical memory used; 5.3 GB of 8.8 GB virtual memory used. Killing container. 

E qui è la mia configurazione della memoria:

errore
spark.driver.memory = 3g 
spark.executor.memory = 3g 
mapred.child.java.opts -Xms1024M -Xmx3584M 
mapreduce.map.java.opts -Xmx2048M 
mapreduce.map.memory.mb 4096 
mapreduce.reduce.java.opts -Xmx3276M 
mapreduce.reduce.memory.mb 4096 

Questa OOM è strano perché non mi mantengo alcun dato in memoria dal momento che è un programma di streaming, qualcuno ha incontrato la stessa domanda simile? O chi sa che cosa lo causa?

+0

Hai avuto qualsiasi risoluzione su questo? –

risposta

-1

Controllare il mem sull'istanza box/vm su cui si sta eseguendo. La mia ipotesi è che la macchina host sia in rosso.

... a causa, sembra, sovra-allocazione della memoria.

Dove pensi che lo streaming venga eseguito? Indipendentemente dal fatto che tu immagazzini qualcosa lì? Sì. memoria. Neanche i gatti o ballare Viking (aggiungi "e").

Indovina cosa? Stai allocando 7 GB di memoria che sono pesantemente appesantiti rispetto ai mem fisici virtuali.

  1. Controllare la registrazione, in quanto avrebbe un tempo di accumulo simile.

  2. Qual è il valore spark.yarn.am.memory?

  3. Ottieni il tuo allocazione VM e la memoria contenitore in equilibrio :)

Un altro pensiero è quello di regolare memoryOverhead in modo fisico & virtuale può essere più proporzionale