Mehrere Dateien werden nicht in einem einzelnen Block gespeichert. Übrigens kann eine einzelne Datei in mehreren Blöcken gespeichert werden. Die Zuordnung zwischen der Datei und den Block-IDs wird im NameNode beibehalten.
Nach dem Hadoop: Der endgültige Leitfaden
Im Gegensatz zu einem Dateisystem für eine einzelne Festplatte belegt eine Datei in HDFS, die kleiner als ein einzelner Block ist, nicht den gesamten zugrunde liegenden Speicher eines ganzen Blocks.
HDFS wurde für die Verarbeitung großer Dateien entwickelt. Wenn zu viele kleine Dateien vorhanden sind, wird der NameNode möglicherweise geladen, da der Namensbereich für HDFS gespeichert wird. In diesem Artikel erfahren Sie, wie Sie das Problem mit zu vielen kleinen Dateien beheben können.
Nun, Sie könnten das mit dem HAR (Hadoop Archive) Dateisystem machen, das versucht, mehrere kleine Dateien in den HDFS-Block einer Spezialteildatei zu packen, die vom HAR-Dateisystem verwaltet wird.
Die Hadoop-Blockgröße ist das Hadoop-Speicherkonzept. Jedes Mal Wenn Sie eine Datei in Hadoop speichern, wird sie in die Blockgrößen unterteilt und basierend auf dem Replikationsfaktor und der Datenlokalisierung über den Cluster verteilt.
Für Details:
Wenn Sie eine Datei auf HDFS schieben, wird sie in Blöcke aufgeteilt. Jeder Block ist wie eine einzelne Datei mit einer maximalen Größe, wie durch die Blockgröße beschrieben.
Jeder Block enthält eine .meta-Datei, um die Metadateninformationen des Blocks in Hadoop zu speichern.
Wenn die Datei sehr klein ist, befindet sich die gesamte Datei in einem Block und der Block (eine Speicherdatei) hat dieselbe Größe wie die Datei und eine Meta-Datei.
Einige Befehle:
(Dir's sind wie in meinem Cluster - / data2 / dfs / dn /):
BLOCK Größe: 1 GB
cd / data / dfs / dn - & gt; aktuell - & gt; Abgeschlossen - & gt; subDir0 - & gt; ( hier ist das Gold )
Block verwendet nur KB des Speichers für kleine Dateien oder könnte sein, wenn die Dateigröße meine Blockgröße + einige KB
ist-rw-r - r-- 1 hdfs hdfs 91K Sep 13 16:19 blk_1073781504
-rw-r - r-- 1 hdfs hdfs 19K Sep 13 16:21 blk_1073781504_40923.meta p>
Wenn die Datei größer ist als die Blockgröße, sieht der Block wie folgt aus:
-rw-r - r-- 1 hdfs hdfs 1.0G 31. August 12:03 blk_1073753814
-rw-r - r-- 1 hdfs hdfs 8.1M 31. August 12:04 blk_1073753814_12994.meta p>
Ich hoffe, es wird das Blockspeicher-Zeug erklären. Wenn Sie wissen möchten, wie Ihre Dateien in Blöcken gespeichert sind, führen Sie
aushdfs fsck-blocks-locations
Lass es mich wissen, wenn ich hier etwas verpasst habe.
Der wichtigste Punkt muss in hdfs verstanden werden, file is partioned into blocks based on size
und nicht, dass es einige Blöcke im Speicher gibt, in denen Dateien gespeichert sind (dies ist ein Missverständnis)
Grundsätzlich werden mehrere Dateien nicht in einem einzigen Block gespeichert (es sei denn, es handelt sich um eine Archiv- oder Har-Datei).