2016-02-19 15 views
13

Sto lavorando in Zeppelin scrivere query scintilla-SQL e qualche volta ho improvvisamente iniziare a ricevere questo errore (dopo non modificare il codice):Perché SparkContext si chiude a caso e come lo riavvii da Zeppelin?

Cannot call methods on a stopped SparkContext. 

L'uscita dice, più in basso:

The currently active SparkContext was created at: 

(No active SparkContext.) 

Questo, ovviamente, non ha senso Si tratta di un bug in Zeppelin? O sto facendo qualcosa di sbagliato? Come posso riavviare SparkContext?

Grazie

+1

Cosa master master stai usando ?? è filato-cliente? – user1314742

risposta

7

Ho affrontato questo problema un paio di volte.

Se si imposta il master come filato-client, potrebbe essere dovuto al blocco/riavvio di Resource Manager, il processo dell'interprete potrebbe essere ancora in esecuzione ma il Contesto Spark (che è un'applicazione Yarn) non esiste Di Più.

È possibile verificare se Spark Context è ancora in esecuzione consultando l'interfaccia Web di Resource Manager e verificare se è presente un'applicazione denominata Zeppelin in esecuzione.

A volte il riavvio del processo dell'interprete dall'interno di Zeppelin (scheda interprete -> scintilla -> riavvio) risolverà il problema.

Altre volte è necessario:

  • uccidere il processo Spark interprete dalla riga di comando
  • rimuovere il file PID Spark Interprete
  • e la prossima volta che si avvia un paragrafo inizierà nuova scintilla contesto
+0

Grazie per la tua risposta, ci proverò quando lancio il mio prossimo cluster –

5

sto affrontando lo stesso problema l'esecuzione di più posti di lavoro in PySpark. Sembra che in Spark 2.0.0, con SparkSession, quando chiamo spark.stop() SparkSession chiama la seguente traccia:

# SparkSession 
self._sc.stop() 
# SparkContext.stop() 
self._jsc = None 

Poi, quando si tenta di creare un nuovo lavoro con il nuovo uno SparkContext, SparkSession restituiscono lo stesso di prima SparkContext con self.jsc = None.

Ho risolto impostando SparkSession._instantiatedContext = None dopo spark.stop() costringendo SparkSession di creare una nuova SparkContext la prossima volta che mi chiedo.

Non è l'opzione migliore, ma nel frattempo sta risolvendo il mio problema.

+0

E per quanto riguarda la scintilla 1.6? Non sono riuscito a trovare SparkSession ... – guilhermecgs

+0

SparkSession è stato introdotto nella scintilla 2.0.0. – Franzi

-1

È possibile controllare se la memoria del driver è sufficiente o no?Ho risolto questo problema

  1. ingrandire memoria conducente
  2. tune GC:

    --conf spark.cleaner.periodicGC.interval=60 
    --conf spark.cleaner.referenceTracking.blocking=false 
    
0

ho notato questo problema più quando si esegue pyspark comandi anche con dichiarazioni di variabili banali che una cella l'esecuzione si blocca nello stato di esecuzione. Come accennato in precedenza da user1314742, solo l'eliminazione del relativo PID risolve questo problema per me.

es .:

ps -ef | grep zeppelin 

Questo è dove riavviare l'interprete Spark e il riavvio del notebook zeppelin non risolve il problema. Immagino perché non può controllare lo stesso PID appeso.

Problemi correlati