2017-04-01 2 views
1

Ich las über Hadoops HDFS und erfuhr, dass hadoop eine kleinere Anzahl von größeren Dateien als eine große Anzahl von kleinen Dateien verarbeiten soll.Metadaten für große und kleine Dateien in Bezug auf Hadoop

Der Grund dafür ist, dass, wenn es eine größere Anzahl von kleinen Dateien gibt, Namenode's Speicher schnell weg gegessen wird. Ich habe Schwierigkeiten, dieses Argument zu verstehen.

ich das folgende Szenario:

1000 kleine Dateien und die jeweils eine Größe von 128 MB (die gleiche Blockgröße von hdfs Block).

Also, das würde 1000 Einträge im Namenode-Speicher bedeuten, der diese Information enthält. Jetzt

, sollten Sie die folgenden Szenarien:

eine einzige große Datei, die 128 MB * 1000 Blockgröße hat.

Jetzt wird Nameode nicht 1000 Einträge für diese BIG-Datei haben?

Ist diese Schlussfolgerung korrekt, dass in beiden Fällen der Nameode die gleiche Anzahl von Einträgen in Bezug auf die Blockinformationen der Datei im Speicher hätte? Wenn ja, wie kommt es, dass hadoop für eine kleine Anzahl von größeren Dateien und nicht für eine größere Anzahl von kleinen Dateien effizient ist?

Kann jemand helfen, dies zu verstehen?

Antwort

1

Jede Datei, Verzeichnis und Block in HDFS wird als Objekt dargestellt in Speicher der NameNode ist, von denen jede ~ 150 Bytes einnimmt.

Fall 1:

Number of Files = 1000 
Number of Blocks per file = 1 
Total Number of Blocks = 1000 (Number of Files * Number of Blocks per file) 
Total number of objects in Namenode's namespace = 2000 (Number of Files + Total Number of Blocks) 
Total Namenode Memory Used = 2000 * 150 bytes 

Fall 2:

Number of Files = 1 
Number of Blocks per file = 1000 
Total Number of Blocks = 1000 (Number of Files * Number of Blocks per file) 
Total number of objects in Namenode's namespace = 1001 (Number of Files + Total Number of Blocks) 
Total Namenode Memory Used = 1001 * 150 bytes 

In beiden Fällen ist die Gesamtgröße durch die Daten belegt bleibt gleich. Aber im ersten Szenario wird 300KB des Namensspeicher verwendet, während nur 150.15KB im zweiten Szenario verwendet wird.

+0

Danke für Ihre Antwort, was ist die Quelle, ist es ein Buch? Können Sie mir bitte Bescheid geben, damit ich auf das gleiche Material verweisen kann? – CuriousMind

+1

Ein Cloudera Blogbeitrag von TomWhite. Siehe [link] (http://blog.cloudera.com/blog/2009/02/the-small-files-problem/) – franklinsijo

Verwandte Themen