Ich verwende Spark in einem YARN Cluster (HDP 2.4) mit den folgenden Einstellungen:Funken auf YARN zu weniger vcores verwendet
- 1 Masternode
- 64 GB RAM (50 GB nutzbar)
- 24 Adern (19-Kern verwendbar)
- 5 Slavenodes
- 64 GB RAM (50 GB nutzbar) jeweils
- 24 Adern (19-Kern verwendbar) jeweils
- YARN Einstellungen
- Speicher aller Behälter (von einem Host): 50 GB
- Mindest Behälter size = 2 GB
- maximale Behältergröße = 50 GB
- vcores = 19
- Mindest # vcores/container = 1
- maximal # vcores/container = 19
Wenn ich meine Funke Anwendung mit dem Befehl spark-submit --num-executors 30 --executor-cores 3 --executor-memory 7g --driver-cores 1 --driver-memory 1800m ...
Garnlauf schaffen 31 Behälter (für jeden Exekutor Prozess + eines Treiberprozeß) mit den folgenden Einstellungen:
- Correct: Master-Container mit 1 Kern & ~ 1800 MB RAM
- Correc t: 30 Slave-Behälter mit ~ 7 GB RAM jeweils
- aber falschen: jeder nur Slave-Behälter mit 1 Kern läuft anstelle von 3, gemäß dem YARN Resourcemanager UI (nur 31 von 95 im Gebrauch zeigt, anstelle von 91 = 30 * 3 + 1), siehe Bild unten
Meine Frage hier: Warum haben die spark-submit
Parameter --executor-cores 3
keine Wirkung?