2016-04-13 13 views
0

Ich habe 1 Master und 3 Slaves (4 Kerne)Welche Vorteile hat es, die Partitionsgröße zu erhöhen und die Anzahl der Partitionen im Funke zu verringern?

Standardmäßig ist die minimale Partitionsgröße in meinem Spark Cluster 32MB und meine Dateigröße ist 41 Gb. So versuche ich die Anzahl der Partitionen durch Ändern der minsize zu 64Mb

sc.hadoopConfiguration.setLong("mapreduce.input.fileinputformat.split.minsize", 64*1024*1024) 
val data =sc.textFile("/home/ubuntu/BigDataSamples/Posts.xml",800) 
data.partitions.size = 657 

Also, was sind die Vorteile der Erhöhung der Partitionsgröße und die Verringerung der Anzahl der Partitionen zu reduzieren. Weil, wenn meine Partitionen um 1314 sind, dauerte es etwa 2-3 Minuten appx und selbst nach dem Reduzieren der Anzahl der Partitionen dauert es immer noch genauso viel Zeit.

Antwort

0

Je mehr Partitionen, desto mehr Overhead, aber bis zu einem gewissen Grad hilft es bei der Leistung, da Sie alle von ihnen parallel ausführen können.

Also, auf der einen Seite macht es Sinn, die Anzahl der Partitionen gleich der Anzahl der Kerne zu halten. Auf der anderen Seite kann es vorkommen, dass die spezifische Partitionsgröße zu einer bestimmten Menge an Müll in der JVM führt, was die Grenze überschreiten könnte. In diesem Fall möchten Sie die Anzahl der Partitionen erhöhen, um den Speicherbedarf der einzelnen Partitionen zu reduzieren.

Es hängt möglicherweise auch vom Workflow ab. Betrachten Sie groupByKey vs reduceByKey. Im letzteren Fall können Sie eine Menge lokal berechnen und nur ein wenig an den entfernten Knoten senden. Mischen wird zufällig auf die Festplatte geschrieben, bevor sie an die entfernte Datenbank gesendet wird. Dadurch kann es passieren, dass mehr Partitionen die Leistung beeinträchtigen.

Es ist auch wahr, dass einige Overhead mit jeder Partition kommen.

Wenn Sie den Cluster mit mehreren Personen teilen möchten, dann könnten Sie den Ansatz in Betracht ziehen, etwas weniger Partitionen zu nehmen, um alles zu verarbeiten, so dass alle Benutzer eine gewisse Verarbeitungszeit haben.

Smth gefällt das.