2017-04-11 2 views
1

Basierend auf Informationen von Spark-Konfigurationsseite, fand ich, dass nach Netty von Funken 1.5 Off-Heap-Puffer verwendet werden, um GC während Shuffle und Cache-Block-Transfer zu reduzieren. Also, meine Frage ist, dass im heutigen Funke, was passiert im Heap-Raum während der Shuffle-Phase?was passiert auf Heap-Raum während Funken Shuffle-Stufe

Antwort

0

Im Allgemeinen speichert Spark Zwischendaten auf der Festplatte im Fall von Shuffling-Operation für "Under-hood" -Optimierung. Diese Zwischendaten werden innerhalb einer gleichen Abstammung (DAG) im Falle der Neuberechnung eines Teils der DAG.Dies kann passieren, auch wenn die RDD nicht zwischengespeichert oder explizit beibehalten wird.

spark.shuffle.file.buffer

Größe des Puffers im Speicher für jeden Ausgabestrom Shuffle-Datei. Diese Puffer reduzieren die Anzahl der Datenträgersuchvorgänge und Systemaufrufe, die in erstellt wurden, um Zwischenmischdateien zu erstellen.

more config info

Bevor 2.x.x Version

For version 1.x.x

+0

Könnten Sie mehr Details über die Zwischendaten geben zu schlurfen. Und noch eine Sache, kann ich bedenken, dass im aktuellen Funken (2.1.0), was in Heap nur die Zwischendaten im Berechnungsjob sein werden? –

+0

Spark 2.x.x ist etwas anders, wenn es darum geht, wo RDD/Dataset gespeichert sind. Zwischendaten werden auf der Festplatte gespeichert, unabhängig von der Version, die ich vermute.Plus Sie müssen über die Spark Memory Struktur verstehen. Ich habe gerade meine Antwort aktualisiert. – BDR

+0

Vielen Dank für die freundliche Antwort. Eine Sache, auf die ich hinweisen möchte, ist, dass dieses Bild etwas veraltet ist. Nach dem Funken 1.6 ist der Parameter spark.shuffle.memoryFraction nur im Legacy-Modus nützlich. Sie stellen nur eine neue Speicherstruktur vor, denke ich. –

Verwandte Themen