Che cosa sono i lavoratori, gli esecutori, i core nel cluster Spark Standalone?

Ho letto Panoramica sulla modalità Cluster e non riesco ancora a comprendere i diversi processi nel cluster Spark Standalone e nel parallelismo.

Il lavoratore è un processo JVM o no? Ho eseguito il bin\start-slave.sh e bin\start-slave.sh scoperto che ha generato il worker, che in realtà è una JVM.

Come per il collegamento precedente, un executor è un processo avviato per un’applicazione su un nodo di lavoro che esegue attività. Executor è anche una JVM.

Queste sono le mie domande:

  1. Gli esecutori sono per applicazione. Allora, qual è il ruolo di un lavoratore? Coordina l’esecutore e comunica il risultato all’autista? o l’autista parla direttamente con l’esecutore? In tal caso, qual è lo scopo del lavoratore?

  2. Come controllare il numero di esecutori per un’applicazione? 3.È ansible eseguire le attività in parallelo all’interno dell’esecutore? In tal caso, come configurare il numero di thread per un executor?

  3. Qual è la relazione tra worker, executors ed executor core (–total-executor-core)?

  4. cosa significa avere più lavoratori per nodo?

aggiornato

Diamo esempi per capire meglio.

Esempio 1: un cluster autonomo con 5 nodes di lavoro (ogni nodo con 8 core) Quando avvio un’applicazione con le impostazioni predefinite.

Esempio 2 Stessa configurazione cluster come nell’esempio 1, ma eseguo un’applicazione con le seguenti impostazioni –executor-core 10 –total-executor-core 10.

Esempio 3 Stessa configurazione cluster come nell’esempio 1, ma eseguo un’applicazione con le seguenti impostazioni –executor-core 10 –total-executor-core 50.

Esempio 4 Stessa configurazione cluster come nell’esempio 1, ma eseguo un’applicazione con le seguenti impostazioni –executor-core 50 –total-executor-core 50.

Esempio 5 Stessa configurazione cluster come nell’esempio 1, ma eseguo un’applicazione con le seguenti impostazioni –executor-core 50 –total-executor-core 10.

In ognuno di questi esempi, quanti esecutori? Quanti thread per esecutore? Quanti nuclei? Come viene deciso il numero di esecutori per applicazione. È sempre uguale al numero di lavoratori?