Ich lese Cluster Mode Overview und ich kann immer noch nicht die verschiedenen Prozesse in der Spark Standalone-Cluster und die Parallelität zu verstehen.Was sind Workers, Executors, Cores im Spark Standalone-Cluster?
Ist der Mitarbeiter ein JVM-Prozess oder nicht? Ich lief die und stellte fest, dass es den Arbeiter hervorbrachte, der eigentlich eine JVM ist.
Gemäß dem obigen Link ist ein Executor ein Prozess, der für eine Anwendung auf einem Worker-Knoten gestartet wird, auf dem Tasks ausgeführt werden. Executor ist auch eine JVM.
Dies sind meine Fragen:
Testamentsvollstrecker sind pro Anwendung. Was ist dann die Rolle eines Arbeiters? Koordiniert es mit dem Executor und kommuniziert das Ergebnis an den Fahrer zurück? oder spricht der Fahrer direkt mit dem Executor? Wenn ja, was ist der Zweck des Arbeitnehmers?
Wie kann die Anzahl der Executoren für eine Anwendung gesteuert werden? 3. Können die Aufgaben im Executor parallel ausgeführt werden? Wenn ja, wie konfiguriert man die Anzahl der Threads für einen Executor?
Wie ist die Beziehung zwischen Worker, Executoren und Executor-Kernen (--Total-Executor-Cores)?
Was bedeutet es, mehr Arbeiter pro Knoten zu haben?
Aktualisiert besser
Lets Beispiele nehmen zu verstehen.
Beispiel 1: Ein eigenständiges Cluster mit 5 Arbeitern Knoten (jeder Knoten mit 8 Kernen) Wenn i eine Anwendung mit Standardeinstellung starten.
Beispiel 2 gleiche Cluster-Konfiguration wie in Beispiel 1, aber ich führe eine Anwendung mit den folgenden Einstellungen --executor-Kern 10 --total-Exekutor-Kern 10.
Beispiel 3 gleiche Cluster-Konfiguration wie in Beispiel 1, aber ich führe eine Anwendung mit den folgenden Einstellungen --executor-Kern 10 --total-Exekutor-Kern 50.er
E xample 4 gleichen Cluster-Konfiguration wie in Beispiel 1, aber ich führen eine Anwendung mit den folgenden Einstellungen --executor-Kerne 50 --total-Exekutor-Kerne 50.
Beispiel 5 gleichen Cluster wie Config 1 Beispiel, aber ich führen eine Anwendung mit den folgenden Einstellungen --executor-Kerne 50 --total-Executor-Kerne 10.
In jedem dieser Beispiele, Wie viele Vollstrecker?Wie viele Threads pro Executor? Wie viele Kerne? Wie wird die Anzahl der Executoren pro Anwendung entschieden? Ist es immer dasselbe wie die Anzahl der Arbeiter?
Dank @Marco. In der Regel sollte man sich also nicht um den Heap-Speicher des Arbeiters kümmern, da er nur die Knotenressourcen verwaltet. – learninghuman
Sie sollten mit spark.executor.memory arbeiten und sicherstellen, dass es Ihre Funken Arbeiter Speicher passt – Marco
Was für eine großartige Antwort! Danke @Marco. Https://github.com/apache/spark/commit/16b6d18613e150c7038c613992d80a7828413e66 '--num-executors 'werden in YARN nicht mehr verwendet. –