2017-02-05 2 views
1

Ich habe eine 10 GB CSV-Datei, und ich möchte es in Hadoop MapReduce verarbeiten. Ich habe einen Cluster mit 15 Knoten (Datanode) und ich möchte den Durchsatz maximieren.Komprimierte Datei VS unkomprimierte Datei in mapreduce. Welcher gibt bessere Leistung?

Welches Komprimierungsformat sollte ich verwenden? oder Textdatei ohne Komprimierung ergibt immer ein besseres Ergebnis als die komprimierte Textdatei. Bitte erläutern Sie den Grund.

Ich verwendete unkomprimierte Datei und es gab mir bessere Ergebnisse über Snappy. Wieso ist es so?

+0

Hängt von Ihren Daten ab. Einige Daten können sehr gut komprimiert werden, andere können kaum komprimiert werden. Ich schlage vor, Sie versuchen ein paar und finden, was am besten für Ihre Daten funktioniert. –

Antwort

0

Das Problem mit Snappy-Komprimierung besteht darin, dass es nicht teilbar ist. Daher kann Hadoop die Eingabedatei nicht in Chunks aufteilen und mehrere Mapper für die Eingabe ausführen. Ihre 10-GB-Datei wird höchstwahrscheinlich von einem einzelnen Mapper verarbeitet (überprüfen Sie dies in der Anwendungshistorie-Benutzeroberfläche). Da hadoop große Dateien in separaten Blöcken auf verschiedenen Rechnern speichert, befinden sich Teile dieser Datei nicht einmal auf dem Mapper-Rechner und müssen über das Netzwerk übertragen werden. Das scheint der Hauptgrund dafür zu sein, dass Snappy-komprimierte Dateien langsamer arbeiten als normaler Text.

Um das Problem zu vermeiden, können Sie die bzip2-Komprimierung verwenden oder die Datei manuell in Blöcke unterteilen und jeden Teil mit Snappy komprimieren.

+0

Danke für Ihre Erklärung. Ja, du hast recht, es ist nur ein Mapper, der mit bissiger Komprimierung läuft. Also iss Snippy Compression nicht nur mit der Textdatei teilbar oder kann geteilt werden, wenn avro/orc/sequence/Parkett mit Snappy verwendet werden? und wie wäre es mit den anderen Komprimierungscodecs wie (LZO, gzip etc ..) mit Textdatei- und Containerdateiformaten (wie Seq/avro/parket/orc). ? –

+0

@AdityaAgarwal Ich habe nicht mit Avro oder Parkett gearbeitet, also kann ich nicht darüber erzählen. Ich weiß, dass es Tricks gibt, um LZO vorzuspalten, und gzip ist nicht aufteilbar – AdamSkywalker

+0

Ok Danke für die Hilfe sowieso. –

Verwandte Themen