Ich habe 2 gzip-Dateien mit jeweils etwa 30 GB Größe und haben Funken Code geschrieben, um sie zu analysieren. Der Funke-Cluster hat 4 Arbeiterknoten (28 GB RAM und 4 Kerne) und 2 Kopfknoten (64 GB RAM).Lesen von großen gz-Dateien in Spark
Ich verwende sc.textFile(histfile,20)
, um diese 2 gzip-Dateien zu lesen und sie parallel zu machen. Der Job ist in 3 Stufen unterteilt: reduceByKey
, reduceByKey
und saveAsTextFile
. Da es 2 Dateien gibt, werden nur 2 Arbeiter verwendet.
Es hat mehr als 4 Stunden gedauert und die 1. Stufe ist noch nicht fertig. Was ist der richtige Weg, um Spark-Jobs zu starten, wenn jede gzip-Datei 100GB-200GB groß ist.
Danke, die num.executor.instances ist als 20 gesetzt. Ist 'sc.textFile (file, numpartition)' nicht partitionieren und Parallelität erreichen? – vkb
Die Eingabeformate von Spark stammen von Hadoop. numpartition wird nur bei teilbaren Dateien wirksam. In Ihrem Fall gibt es keine Aufspaltung, daher numpartitions ist nicht von Nutzen. Sie können die num-Aufgabe in Stufe 1 anzeigen, um sie zu überprüfen. – KrazyGautam