2014-05-07 11 views
10

Diciamo che ho 2 o più esecutori in un'applicazione Spark Streaming.Come vengono assegnati i lavori agli esecutori in Spark Streaming?

Ho impostato il tempo di lotto di 10 secondi, quindi un processo viene avviato ogni 10 secondi leggendo l'input dal mio HDFS.

Se ogni lavoro dura per più di 10 secondi, il nuovo lavoro avviato viene assegnato a un esecutore libero giusto?

Anche se il precedente non è stato completato?

So che sembra una risposta ovvia ma non ho trovato nulla sulla pianificazione dei lavori nel sito Web o sulla carta correlata a Spark Streaming.

Se si conoscono alcuni collegamenti in cui vengono spiegate tutte queste cose, mi piacerebbe molto vederli.

Grazie.

risposta

20

In realtà, nell'attuale implementazione di Spark Streaming e in configurazione predefinita, solo il lavoro è attivo (vale a dire in esecuzione) in qualsiasi momento. Quindi, se l'elaborazione di un lotto richiede più di 10 secondi, i lavori del prossimo lotto rimarranno in coda.

Questo può essere modificato con una proprietà Spark sperimentale "spark.streaming.concurrentJobs", che per impostazione predefinita è impostata su 1. Non è attualmente documentata (forse dovrei aggiungerla).

Il motivo per cui è impostato su 1 è che i lavori concorrenti possono potenzialmente portare a una strana condivisione di risorse e che può rendere difficile il debug se vi sono risorse sufficienti nel sistema per elaborare i dati ingeriti abbastanza velocemente. Con un solo lavoro in esecuzione alla volta, è facile notare che se il tempo di elaborazione batch è <, il sistema sarà stabile. Premesso che questo potrebbe non essere l'uso più efficiente delle risorse a determinate condizioni. Speriamo sicuramente di migliorare questo in futuro.

C'è un po 'di materiale per quanto riguarda gli interni di Spark Streaming in questa diapositiva meetup (scusate, per la spudorata auto pubblicità :)). Potrebbe essere utile a te.

+0

Stiamo lavorando a un progetto correlato a queste cose, quindi esaminerò con piacere le diapositive per comprenderne di più. Grazie. – gprivitera

Problemi correlati