Ich verwende Spark (1.5.1) von einem IPython-Notebook auf einem MacBook Pro. Nach der Installation von Spark und Anaconda starte ich IPython von einem Terminal aus, indem ich Folgendes ausführe : IPYTHON_OPTS="notebook" pyspark
. Dies öffnet eine Webseite, auf der alle meine IPython-Notizbücher aufgelistet sind. Ich kann einen von ihnen auswählen und ihn auf einer zweiten Webseite öffnen. SparkContext (sc) ist bereits verfügbar, und mein erster Befehl im Notizbuch lautet help(sc)
: Er läuft einwandfrei. Das Problem, das ich habe, ist, dass ich einen Java-Heap-Space-Fehler erhalte, den ich nicht beheben kann. Wie kann ich meine aktuelle Java-Heap-Einstellung anzeigen und wie kann ich sie im Kontext meines Setups erhöhen? Die Fehlermeldung, die ich erhalte, lautet wie folgt:
Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 19 in stage 247.0 failed 1 times, most recent failure: Lost task 19.0 in stage 247.0 (TID 953, localhost): java.lang.OutOfMemoryError: Java heap space
Antworten:
Sie können Spark-Speicherlimits programmgesteuert (über die API) verwalten.
Da SparkContext bereits in Ihrem Notebook verfügbar ist:
Sie können auch festlegen, müssen jedoch zuerst den vorhandenen SparkContext herunterfahren:
Wenn Ihre Arbeitslast für alle Analysen gleich ist, ist die Bearbeitung der oben genannten spark-defaults.conf der richtige Weg.
quelle
Ich habe es gelöst, indem ich eine
spark-defaults.conf
Datei erstelltapache-spark/1.5.1/libexec/conf/
und die folgende Zeile hinzugefügt habe:spark.driver.memory 14g
Das hat mein Problem gelöst. Aber dann bin ich auf eine andere Ausgabe von gestoßen
exceeding max result size of 1024MB
. Die Lösung bestand darin, eine weitere Zeile in die obige Datei einzufügen:spark.driver.maxResultSize 2g
quelle
Verwenden Sie einfach die
config
Option, wenn Sie SparkSession einstellen (ab 2.4).quelle