2016-02-01 12 views
7

Ho un lavoro spark in streaming che legge i dati da Kafka e fa alcune operazioni su di esso. Sto facendo il lavoro su un filato, Spark 1.4.1, che ha due nodi con 16 GB di RAM ciascuno e 16 core ciascuno.Il processo di streaming di scintilla non riesce dopo essere stato arrestato dal driver

ho questi conf passato alla scintilla presentare lavoro:

--master filo-grappolo --num-esecutori 3 --driver-memoria 4G --executor memoria 2g --executor- nuclei 3

Il lavoro restituisce questo errore e termina dopo l'esecuzione per un breve periodo:

INFO yarn.ApplicationMaster: Final app status: FAILED, exitCode: 11, 
(reason: Max number of executor failures reached) 

..... 

ERROR scheduler.ReceiverTracker: Deregistered receiver for stream 0: 
Stopped by driver 

aggiornato:

Questi registri sono stati trovati anche:

INFO yarn.YarnAllocator: Received 3 containers from YARN, launching executors on 3 of them..... 

INFO yarn.ApplicationMaster$AMEndpoint: Driver terminated or disconnected! Shutting down. 

.... 

INFO yarn.YarnAllocator: Received 2 containers from YARN, launching executors on 2 of them. 

INFO yarn.ExecutorRunnable: Starting Executor Container..... 

INFO yarn.ApplicationMaster$AMEndpoint: Driver terminated or disconnected! Shutting down... 

INFO yarn.YarnAllocator: Completed container container_e10_1453801197604_0104_01_000006 (state: COMPLETE, exit status: 1) 

INFO yarn.YarnAllocator: Container marked as failed: container_e10_1453801197604_0104_01_000006. Exit status: 1. Diagnostics: Exception from container-launch. 
Container id: container_e10_1453801197604_0104_01_000006 
Exit code: 1 
Stack trace: ExitCodeException exitCode=1: 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:576) 
    at org.apache.hadoop.util.Shell.run(Shell.java:487) 
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:753) 
    at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211) 
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302) 
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

Container exited with a non-zero exit code 1 

quali potrebbero essere le ragioni di questo? Apprezzo l'aiuto.

Grazie

+0

Probabilmente ci sono altri errori/informazioni prima di questo che sembrano __killing executor__, __lost executor__. Puoi guardare nel registro per questo e pubblicare quei messaggi di eror? –

+0

@RaduIonescu Ho aggiunto alcuni log che mi sembravano speculativi. Potresti dare un'occhiata? Grazie. – void

+0

Per me sembra che si chiami 'sparkContext.stop()' o si sta utilizzando troppa memoria nel driver (ad esempio chiamando 'collect()' su tutti _RDD_s). Potresti provare a eseguirlo richiedendo esplicitamente più risorse o con un piccolo set di dati per confermarlo. –

risposta

-3

Ho avuto lo stesso problema. e ho trovato 1 soluzione per risolvere il problema rimuovendo sparkContext.stop() alla fine della funzione main, lasciare l'azione stop per GC.

Il team Spark ha risolto il problema in Spark core, tuttavia, la correzione è stata appena la filiale principale finora. Dobbiamo aspettare che la correzione sia stata aggiornata nella nuova versione.

https://issues.apache.org/jira/browse/SPARK-12009

+0

Non sto chiamando sparkContext.stop() nel mio codice btw. – void

1

può si prega di mostrare la vostra scala di codice/java che sta leggendo da Kafka? Sospetto che probabilmente non stai creando correttamente SparkConf.

provare qualcosa di simile

SparkConf sparkConf = new SparkConf().setAppName("ApplicationName"); 

anche provare a eseguire l'applicazione in modalità filo-client e condividere l'uscita.

+0

'val conf = new SparkConf(). setAppName (" AppName ")' questo è il modo in cui creo il mio spark conf nel mio codice scala. Ora sto lavorando in un cluster autonomo, poiché questo errore mi dava troppi mal di testa Quindi, non è possibile provare in modalità filato client – void

+0

solo per approfondire il problema, è possibile eseguire spark-shell in modalità filato client. –

+0

eseguire sparkle shell come spark-shell --master yarn-client Esegui campione operazioni e vedere val textFile = sc.textFile ("file su hdfs") textFile.count() –