TL; DRFunken zeigen unterschiedliche Anzahl von Kernen als das, was passiert ist, es mit Funken einreichen
Spark-UI zeigt unterschiedliche Anzahl der Kerne und Speicher als das, was ich bin gefragt bei der Verwendung von Funken einreichen
mehr Details:
Ich habe Spark 1.6 im Standalone-Modus ausgeführt. Wenn ich Spark-Submit laufen lasse, gebe ich 1 Executor-Instanz mit 1 Core für den Executor und 1 Core für den Treiber. Was ich erwarten würde ist, dass meine Anwendung mit 2 Kernen insgesamt ausgeführt wird. Wenn ich die Registerkarte "Umgebung" auf der Benutzeroberfläche überprüfe, sehe ich, dass sie die korrekten Parameter erhalten hat, die ich ihr gegeben habe, aber es scheint immer noch so zu sein, als würde sie eine andere Anzahl von Kernen verwenden. Sie können es hier sehen:
Das ist mein Funken defaults.conf, die ich verwende:
spark.executor.memory 5g
spark.executor.cores 1
spark.executor.instances 1
spark.driver.cores 1
die Registerkarte Umgebung auf der Spark-UI Überprüfung zeigt, dass diese sind in der Tat die Empfangene Parameter, aber die Benutzeroberfläche zeigt immer noch etwas anderes
Hat jemand eine Idee, was dazu führen könnte, dass Spark eine andere Anzahl von Kernen verwendet, als ich es möchte? Ich versuchte offensichtlich es googeln, aber nicht etwas Nützliches zu diesem Thema
Vielen Dank im Voraus
Wie läuft Spark? Im Cluster- oder Client-Modus? Mit YARN (basierend auf der Verwendung von executor.instances ..)? –
Standalone (es ist am Anfang der Frage), nicht YARN, dachte ich über das Hinzufügen der Spark-Submit-Linie, aber es ist nur der Master und die Hauptklasse, der Rest ist durch die Spark-defaults.conf gegeben – Gideon
Dann macht dies Sinn: Im Standalone-Modus wird eine gierige Strategie verwendet und es werden so viele Executoren erstellt, wie Kerne und Speicher verwendet werden. In Ihrem Fall haben Sie pro Executor 1 Core angegeben, also wird Spark versuchen, 8 Executoren zu erstellen, da 8 Cores verfügbar sind. Da jedoch nur 30 GB RAM verfügbar sind, können nur 6 erstellt werden (6 Executoren mit jeweils 5 GB RAM). Sie haben 6 Executoren. 'spark.executor.instances' ist eine Nur-YARN-Konfiguration. Am besten stellen Sie die Gesamtanzahl der Kerne mit 'func.cores.max' auf 2, sagen Sie mir, ob das besser ist. –