Ich habe einen Cluster von 3 Knoten, jeder hat 12 Kerne und 30G, 20G und 10G RAM bzw.. Wenn ich meine Anwendung ausführe, setze ich den Executor-Speicher auf 20G, was verhindert, dass der Executor in der 10G-Maschine gestartet wird, da er den Schwellenwert des Slave-Speichers überschreitet, und auch die Ressourcen auf dem 30G-Rechner ausnutzt. Ich habe gesucht, aber keine Möglichkeit gefunden, den Executor-Speicher dynamisch auf die Kapazität des Knotens zu setzen, also wie kann ich den Cluster oder meinen Spark-Job so konfigurieren, dass die Ressourcen des Clusters vollständig genutzt werden?Ausführen von Spark auf heterogenen Cluster im Standalone-Modus
1
A
Antwort
1
Die Lösung besteht darin, mehr Executoren mit weniger Speicher zu haben. Sie können den gesamten Speicher verwenden, indem Sie 6- 10G-Executoren haben (1 auf dem 10G-Knoten, 2 auf dem 20G-Knoten, 3 auf dem 30G-Knoten). Oder mit 12-5G Executoren. etc
Verwandte Themen
- 1. Ausführen von zwei Versionen von Apache Spark im Cluster-Modus
- 2. Senden von Spark-Anwendung auf Standalone-Cluster
- 3. Frühe Initialisierung von Objekten auf Worker-Knoten im Spark-Cluster
- 4. Spark-Jobs auf einem YARN-Cluster mit zusätzlichen Dateien ausführen
- 5. Wie Spark auf Docker ausführen?
- 6. Spark-Treiber kann nicht im Cluster
- 7. Spark-Job im DC/OS-Cluster auf AWS
- 8. Kontextfehler auf dem Spark-Jobserver-Cluster
- 9. Ausführen von Spark in IntelliJ Idea auf Standalone-Cluster mit Master auf demselben Windows-Computer
- 10. Ausführen von Spark-Submit mit --master yarn-cluster: Problem mit Spark-Assembly
- 11. Spark: hdfs Cluster-Modus
- 12. Spark-Job nicht genug Container auf Cluster
- 13. Spark läuft auf Yarn-Cluster exitCode = 13:
- 14. Spark senden Cluster-Modus von s3
- 15. Wie können alle Spark-Knoten im Cluster vollständig genutzt werden?
- 16. Was bedeutet "Locality Level" auf Spark-Cluster
- 17. Nicht alle im Spark Standalone-Cluster verwendeten Knoten
- 18. Ausführen eines Spark-Jobs mit Spark-Submit über den gesamten Cluster
- 19. Fehler beim Ausführen eines Python-Jobs im DSE 4.8 Spark-Cluster.
- 20. Installieren Sie Spark auf einem vorhandenen Hadoop-Cluster
- 21. java.lang.ClassNotFoundException beim Ausführen von Programm auf Funken-Cluster
- 22. Make Spark-Umgebung für Cluster
- 23. Ausführen eines verteilten Spark Job Servers mit mehreren Arbeitern in einem eigenständigen Spark-Cluster
- 24. Mehrere Parpool-Jobs auf einem Cluster ausführen
- 25. Was sind Workers, Executors, Cores im Spark Standalone-Cluster?
- 26. Initialisieren Cluster Centers in Spark
- 27. session.execute() nicht auf Cassandra, wenn auf Spark-Cluster
- 28. Spark Mesos Cluster-Modus mit Dispatcher
- 29. Spark Resource Scheduling - Standalone-Cluster-Manager
- 30. Spark on Mesos - Ausführen mehrerer Streaming-Jobs
Aber AFAIK die einzige Möglichkeit, die Anzahl der Executoren im Standalone-Modus zu konfigurieren, ist die 'spark.executor.cores', und dies ist ein fester Wert über alle Knoten, was bedeutet, dass der gleiche Wert dieser Einstellung angewendet wird zu allen Maschinen im Cluster, unabhängig von den Kernen, die sie haben, also wenn ich es auf 3 setze, werde ich mit 12/3 = 4 Executoren auf jeder Maschine enden, immer noch die gleiche Menge an Speicher gemeinsam verwenden. Gibt es eine andere Möglichkeit, die Anzahl der Executoren im Standalone-Modus festzulegen? – elgoog
Ah, ich habe deine Notiz verpasst, dass jeder Knoten 12 Kerne hat. In diesem Fall haben Sie entweder ungenutzten Speicher oder nicht verwendete Kerne. Leider müssen alle Spark-Executoren identisch sein. – David
Ich denke, dass Sie die Anzahl der Kerne als Argument an Spark übergeben können. –