2015-04-10 14 views
12

Utilizzo il cluster di scintille databricks (AWS) e il test sul mio esperimento scala. Ho qualche problema quando si allena su un dato da 10 GB con l'algoritmo LogisticRegressionWithLBFGS. Il blocco di codice dove ho incontrato la questione è la seguente:spark executor lost failure

import org.apache.spark.mllib.classification.LogisticRegressionWithLBFGS 
val algorithm = new LogisticRegressionWithLBFGS() 
algorithm.run(training_set) 

In primo luogo ho ottenuto un esecutore molto perso fallimento e java di problemi di memoria, poi ho ripartizionato mia training_set con più partizioni e il fuori problemi di memoria sono andato, ma ancora ottenere l'esecutore ha perso il fallimento.

Il mio cluster ha 72 core e 500 GB di ram in totale. Qualcuno può dare qualche idea su questo?

+0

Avete trovato qualche soluzione? Sto anche affrontando lo stesso problema .. –

+1

Sì, il mio problema è che il mio vettore di funzionalità è molto grande e scarso, mentre sto usando il vettore denso. Se scelgo di utilizzare il formato vettoriale sparse, non affronto problemi e la scintilla forma il modello a una velocità veramente elevata. – peng

+0

Grazie per l'aggiornamento .. –

risposta

5

LBFGS utilizza il vettore denso per la memorizzazione di beta (peso delle funzioni) internamente e tutto è in memoria. Quindi, a prescindere dalla scarsità di funzionalità nel set di allenamento, il conteggio totale delle caratteristiche è qualcosa su cui prestare attenzione.

Quindi, per risolvere questo utente, è necessario aumentare la memoria dell'esecutore o limitare il numero totale di funzioni nel set di allenamento.

+0

Ho deciso di inviare una risposta, anche se sembra che SO originale sia riuscito a risolvere già il problema, perché questo era un grosso problema per noi, senza sintomi utilizzabili. – Barak1731475