Deze blog is om een aantal van de startproblemen op te lossen wanneer een newbie codeert voor Spark distributed computing. Afgezien van het leren van de API’s, moet men zichzelf uit te rusten met cluster details om het beste van de Spark power.
Het startpunt zou zijn Cluster Mode Overview .
En een aantal veel voorkomende vragen die kunnen opduiken zijn:
- Je begrijpt nog steeds niet de verschillende processen in de Spark Standalone cluster en het parallellisme.
- Je rende de bin\start-slave.sh en ontdekte dat het de werker spawned, wat eigenlijk een JVM is. Is de uitvoerder een JVM-proces of niet?
- Volgens de bovenstaande link is een uitvoerder een proces dat wordt gestart voor een toepassing op een werkerknooppunt dat taken uitvoert. Executor is ook een JVM.
- Executors zijn per applicatie. Wat is dan de rol van een werker? Coördineert het met de uitvoerder en communiceert het resultaat terug naar de bestuurder? Of praat de bestuurder rechtstreeks met de uitvoerder? Zo ja, wat is dan het doel van de uitvoerder?
- Hoe kan het aantal uitvoerders voor een toepassing worden geregeld?
- Kunnen de taken parallel worden uitgevoerd in de uitvoerder? Zo ja, hoe kan het aantal threads voor een executor worden geconfigureerd?
- Wat is de relatie tussen worker, executors en executor cores ( – total-executor-cores)?
- Wat betekent het om meer workers per node te hebben?
Laten we de details van de Spark Cluster modus nog eens bekijken.