Liebe Mitbürger Apache Spark-EnthusiastenApache Spark - Wie langsam Aufgaben
Ich trat vor kurzem ein Nebenprojekt mit dem Ziel, dreht ein paar ODROID XU4 Computer in einen Stand-alone-Spark-Cluster aus vermeiden versagen.
Nach dem Einrichten des Clusters stieß ich auf ein Problem, das spezifisch für heterogene Multiprozessoren zu sein scheint. Spark-Executor-Tasks laufen auf der XU4 extrem langsam, wenn alle 8 Prozessoren verwendet werden. Der Grund, wie in einem Kommentar zu meinem Post unten erwähnt, ist, dass Spark nicht auf die Executoren wartet, die auf den langsamen Prozessoren gestartet wurden.
Eine Lösung ist weniger Testamentsvollstrecker Kerne zu verwenden und die CPU-Affinität setzen nicht die kleinen Prozessoren zu verwenden. Dies ist jedoch eine weniger als ideale Lösung.
Gibt es eine Möglichkeit, Spark zu bitten, etwas länger auf Feedback von langsameren Executoren zu warten? Offensichtlich zu lange warten wird sich negativ auf die Leistung auswirken. Der positive Effekt der Verwendung aller Kerne sollte jedoch den negativen Effekt ausgleichen.
Vielen Dank im Voraus für jede Hilfe!
Großartiger Fund @claireware. Ich habe die Einstellungen übernommen und erziele eine viel bessere Leistung, auch wenn 8 Kerne verwendet werden. Es scheint jedoch 2 - 3 ist die sicherste Nummer zu verwenden. – TJVR
@TJVR Die Verwendung von mehr Kernen erfordert mehr RAM-Overhead, und auf der 2-GB-XU4-Platine kann dies erheblich sein. Wenn Sie mit einem großen Dataset arbeiten, habe ich festgestellt, dass ich am besten zu 1 Core zurückwähle, damit mehr RAM für die Berechnungen zur Verfügung steht. Allerdings habe ich 2-3 Kerne für kleine Datensätze erstellt. – kamprath