1

Ich habe meine Spark-Anwendung zweimal erfolgreich ausgeführt, nachdem ich einen frischen EMR-Cluster gestartet hatte. Nach dem Ausführen einer anderen Spark-Anwendung mehrmals, die nicht genügend Speicherprobleme hat, habe ich die erste Spark-Anwendung erneut ausgeführt und keine Speicherfehler mehr erhalten.Warum bekomme ich Speicherfehler erst nach mehreren Durchläufen meiner Spark-Anwendung?

Ich wiederholte diese Abfolge von Ereignissen dreimal und es passiert jedes Mal. Was könnte passieren? Sollte Spark keinen Speicher zwischen Läufen freigeben?

+1

Es ist schwierig, warum etwa ohne einige weitere Informationen, um herauszufinden, was genau Sie versuchen und vielleicht einen Stacktrace auf, dass Fehler nicht genügend Arbeitsspeicher zu tun. –

Antwort

0

Nachdem ein Spark-Programm abgeschlossen ist, generiert es temporäre Verzeichnisse und es bleibt im Temp-Verzeichnis, so dass nach einigen Spark-Anwendungen gibt es möglicherweise nicht genügend Speicherfehler. Es gibt einige Aufräumoptionen, die dieses Problem lösen können.

spark.worker.cleanup.enabled (Der Standardwert ist false), spark.worker.cleanup.interval, spark.worker.cleanup.appDataTtl, um weitere Informationen über diese freundlicherweise durch dieses Dokument gehen.

http://spark.apache.org/docs/latest/spark-standalone.html#cluster-launch-scripts

+0

Wie würde dies zu einem Speicherfehler beitragen? Ich kann mir vorstellen, dass es sich eher um ein Problem mit dem Speicherplatz handeln würde. –

+0

wenn dieses temporäre Verzeichnis mehr Speicher belegte als sein Speicherproblem ... Was ich vorgeschlagen habe, lösche dieses temporäre Verzeichnis und versuche dann, das Programm auszuführen. –

Verwandte Themen