2016-06-23 15 views
1

Ich muss 100 Textdateien in HDFS hochladen, um eine Datentransformation mit Apache Pig durchzuführen.Apache Hadoop: Einfügen von komprimierten Daten in HDFS

In Sie Meinung nach, was ist die beste Option:

a) alle Textdateien komprimieren und nur eine Datei,

b) Legen Sie alle Textdateien einzeln hochladen?

Antwort

0

Es hängt von Ihrer Dateigröße, Cluster-Parameter und Verarbeitungsmethoden ab.

Wenn Ihre Textdateien in der Größe mit der HDFS-Blockgröße vergleichbar sind (z. B. Blockgröße = 256 MB, Dateigröße = 200 MB), ist es sinnvoll, sie so zu laden, wie sie ist.

Wenn Ihre Textdateien sehr klein sind, gibt es typische HDFS & kleine Dateien Problem - jede Datei wird 1 hdfs Block belegen (nicht physisch), so NameNode (die Metadaten behandelt) wird einige Overhead bei der Verwaltung viele Blöcke . Um das Problem zu lösen, können Sie Ihre Dateien entweder zusammenführen, Hadoop-Archive (HAR) oder ein benutzerdefiniertes Dateiformat (zB Sequence Files) verwenden.

Wenn ein benutzerdefiniertes Format verwendet wird, müssen Sie zusätzliche Arbeit mit der Verarbeitung ausführen - es ist erforderlich, benutzerdefinierte Eingabeformate zu verwenden.

Meiner Meinung nach ist 100 nicht so viel, um die Leistung von NameNode signifikant zu beeinflussen, also scheinen beide Optionen lebensfähig zu sein.