2016-01-21 1 views
6

Sto iniziando un cluster scintilla AWS, con un master e 60 core:Spark: configurazione driver/operatore. Il driver funziona sul nodo Master?

enter image description here

Ecco il comando per avviare, fondamentalmente 2 esecutori per core, totalmente 120 esecutori:

spark-submit --deploy-mode cluster --master yarn-cluster --driver-memory 180g --driver-cores 26 --executor-memory 90g --executor-cores 13 --num-executors 120 

Tuttavia, nel job Tracker, c'è solo 119 esecutori:

enter image description here

Ho pensato che ci dovrebbero essere 1 driver + 120 esecutori dei lavoratori. Tuttavia, ciò che ho visto sono stati 119 esecutori, tra cui 1 autista + 118 esecutori esecutivi.

Significa che il mio nodo Principale non è stato utilizzato? Il driver è in esecuzione sul nodo principale o sul nodo principale? Posso far funzionare il driver sul nodo Master e lasciare che i 60 core ospitino 120 esecutori funzionanti?

Grazie!

risposta

1

Quando si esegue la modalità cluster-thread, il driver dell'applicazione viene eseguito all'interno del cluster, anziché sulla macchina su cui è stato eseguito spark submit. Ciò significa che prenderà il numero di core del driver sul cluster, risultando nei 119 esecutori che vedete.

Se si desidera eseguire il driver al di fuori del cluster, provare la modalità client filato.

Maggiori informazioni su esecuzione sul filo può essere trovato qui: http://spark.apache.org/docs/latest/running-on-yarn.html

+0

Significa che il nodo Master non fa parte del cluster? Quindi cosa fa il nodo principale? – Edamame

+0

Il master in sparkstandalone (gestore risorse in YARN) viene utilizzato solo per delegare i lavori agli operatori e tenere traccia dello stato del cluster, ecc. È possibile distribuire un worker nella stessa casella del master, ma se il nodo master è il solo servizio, nessun esecutore verrà eseguito lì. Il post di Ravindra in basso ha un diagramma di architettura accurato. –

+0

Se il nodo su cui è in esecuzione l'applicazione spark driver si arresta o si riavvia, l'applicazione spark driver verrebbe avviata automaticamente su un altro nodo worker nel cluster in modalità cluster? – girip11

3

In filo-cluster modalità, il driver viene eseguito nel Master Application. Ciò significa che lo stesso processo è responsabile sia della guida dell'applicazione che della richiesta di risorse da parte di YARN e questo processo viene eseguito all'interno di un contenitore di RACCOLTA. Il client che avvia l'app non ha bisogno di rimanere in giro per tutta la sua durata.

enter image description here

In filato-client modo, conducente Spark per eseguire all'interno del processo client che avvia l'applicazione Spark.

enter image description here

Dai un'occhiata alla cloudera blog per maggiori dettagli.

+0

Quindi in modalità cluster, il nodo Master è parte del cluster? Cosa fa il nodo Master dopo l'avvio del lavoro? È al minimo? – Edamame

+0

Sì. In modalità cluster, il driver Spark viene eseguito all'interno di un processo principale dell'applicazione che viene gestito da YARN sul cluster e che il client può andare via dopo l'avvio dell'applicazione. Il cliente può andare via e il Master può occuparsi delle attività rimanenti. –

+0

Intendo l'istanza del nodo Master: cr1.8xlarge, il master dell'applicazione è in esecuzione lì? In tal caso, perché ci sono solo 118 esecutori di lavoro invece di 120 esecutori di lavoro nelle altre 60 istanze cr1.8xlarge? Grazie! – Edamame