Ich habe die Übersicht über den Cluster-Modus gelesen und kann die verschiedenen Prozesse im Spark Standalone-Cluster und die Parallelität immer noch nicht verstehen .
Ist der Worker ein JVM-Prozess oder nicht? Ich habe das ausgeführt bin\start-slave.sh
und festgestellt, dass es den Arbeiter hervorgebracht hat, der eigentlich eine JVM ist.
Gemäß dem obigen Link ist ein Executor ein Prozess, der für eine Anwendung auf einem Arbeitsknoten gestartet wird, der Aufgaben ausführt. Ein Executor ist auch eine JVM.
Das sind meine Fragen:
Ausführende sind pro Antrag. Was ist dann die Rolle eines Arbeiters? Koordiniert es mit dem Testamentsvollstrecker und teilt das Ergebnis dem Fahrer mit? Oder spricht der Fahrer direkt mit dem Testamentsvollstrecker? Wenn ja, was ist dann der Zweck des Arbeitnehmers?
Wie steuere ich die Anzahl der Ausführenden für eine Anwendung?
Können die Aufgaben im Executor parallel ausgeführt werden? Wenn ja, wie konfiguriere ich die Anzahl der Threads für einen Executor?
Wie ist die Beziehung zwischen einem Arbeiter, Ausführenden und Ausführerkernen (--total-executor-cores)?
Was bedeutet es, mehr Mitarbeiter pro Knoten zu haben?
Aktualisiert
Nehmen wir Beispiele, um besser zu verstehen.
Beispiel 1: Ein eigenständiger Cluster mit 5 Arbeitsknoten (jeder Knoten hat 8 Kerne) Wenn ich eine Anwendung mit Standardeinstellungen starte.
Beispiel 2 Gleiche Clusterkonfiguration wie in Beispiel 1, aber ich führe eine Anwendung mit den folgenden Einstellungen aus: --executor-cores 10 --total-executor-cores 10.
Beispiel 3 Dieselbe Cluster-Konfiguration wie in Beispiel 1, aber ich führe eine Anwendung mit den folgenden Einstellungen aus: -executor-cores 10 --total-executor-cores 50.
Beispiel 4 Dieselbe Cluster-Konfiguration wie in Beispiel 1, aber ich führe eine Anwendung mit den folgenden Einstellungen aus: -executor-cores 50 --total-executor-cores 50.
Beispiel 5 Gleiche Clusterkonfiguration wie in Beispiel 1, aber ich führe eine Anwendung mit den folgenden Einstellungen aus: --executor-cores 50 --total-executor-cores 10.
Wie viele Testamentsvollstrecker gibt es in jedem dieser Beispiele? Wie viele Threads pro Executor? Wie viele Kerne? Wie wird die Anzahl der Testamentsvollstrecker pro Antrag festgelegt? Ist es immer das gleiche wie die Anzahl der Arbeiter?
quelle
--num-executors
ist nicht mehr in Gebrauch in GARN.So funktioniert Apache Spark intern:
quelle