Looking for apache-spark Keywords? Try Ask4Keywords

apache-sparkPartitionen


Bemerkungen

Die Anzahl der Partitionen ist entscheidend für die Leistung einer Anwendung und / oder für eine erfolgreiche Beendigung.

Ein Resilient Distributed Dataset (RDD) ist die Hauptabstraktion von Spark. Eine RDD ist in Partitionen aufgeteilt, dh, eine Partition ist Teil des Datasets, ein Teil davon oder mit anderen Worten ein Teil davon.

Je größer die Anzahl der Partitionen ist, desto kleiner ist jede Partition.

Beachten Sie jedoch, dass eine große Anzahl von Partitionen Hadoop Distributed File System (HDFS) sehr unter Druck setzt, da hier eine beträchtliche Menge an Metadaten vorhanden sein muss.

Die Anzahl der Partitionen hängt von der Speicherauslastung ab, und ein Problem mit memoryOverhead kann sich auf diese Anzahl beziehen ( persönliche Erfahrung ).


Eine häufige Gefahr für neue Benutzer ist die Umwandlung ihrer RDD in eine RDD mit nur einer Partition, die normalerweise so aussieht:

data = sc.textFile(file)
data = data.coalesce(1) 

Das ist normalerweise eine sehr schlechte Idee, da Sie Spark sagen, dass alle Daten nur eine Partition sind. Erinnere dich daran:

Eine Phase in Spark arbeitet jeweils nur auf einer Partition (und lädt die Daten in dieser Partition in den Speicher).

Aus diesem Grund weisen Sie Spark an, alle Daten auf einmal zu behandeln, was normalerweise zu Fehlern in Bezug auf den Speicher (beispielsweise zu wenig Speicher) oder sogar zu einer Ausnahme mit einem Nullzeiger führt.

Wenn Sie also nicht wissen, was Sie tun, vermeiden Sie es, Ihre RDD in nur einer Partition neu zu partitionieren!

Partitionen Verwandte Beispiele