Questo blog è per chiarire alcuni dei problemi di partenza quando un principiante si occupa di codici per il calcolo distribuito Spark. A parte l’apprendimento delle API, si devono conoscere i dettagli del cluster per sfruttare al meglio la potenza di Spark.
Il punto di partenza sarebbe la panoramica della modalità Cluster.
E alcune domande comuni che potrebbero sorgere sono:
- Non riesci ancora a capire i diversi processi nel cluster Spark Standalone e il parallelismo.
- Hai eseguito il bin\start-slave.sh e hai scoperto che ha generato il worker, che è effettivamente una JVM. Il worker è un processo JVM o no?
- Come da link sopra, un executor è un processo lanciato per un’applicazione su un nodo worker che esegue compiti. L’esecutore è anche una JVM.
- Gli esecutori sono per applicazione. Allora qual è il ruolo di un worker? Si coordina con l’esecutore e comunica il risultato al driver o il driver parla direttamente con l’esecutore? Se è così, qual è lo scopo del worker allora?
- Come controllare il numero di executor per un’applicazione?
- Può essere fatto in modo che i compiti vengano eseguiti in parallelo all’interno dell’executor? Se sì, come configurare il numero di thread per un executor?
- Qual è la relazione tra worker, executor e executor cores ( – total-executor-cores)?
- cosa significa avere più worker per nodo?
Ripercorriamo i dettagli della modalità Spark Cluster.