2014-01-22 3 views
1

Я запускаю среду singoenode hadoop. Когда я побежал $hadoop fsck /user/root/mydatadir -block, я действительно запутался вокруг выхода он дал:Количество файлов Vs Количество блоков в HDFS


Status: HEALTHY 
Total size: 998562090 B 
Total dirs: 1 
Total files: 50 (Files currently being written: 1) 
Total blocks (validated):  36 (avg. block size 27737835 B) (Total open file               blocks (not validated): 1) 
Minimally replicated blocks: 36 (100.0 %) 
Over-replicated blocks:  0 (0.0 %) 
Under-replicated blocks:  36 (100.0 %) 
Mis-replicated blocks:   0 (0.0 %) 
Default replication factor: 2 
Average block replication:  1.0 
Corrupt blocks:    0 
Missing replicas:    72 (200.0 %) 
Number of data-nodes:   1 
Number of racks:    1 

Он говорит, что я написал 50 файлов и все же он использует только 36 блоков (я просто игнорировать файл в настоящее время написано).

Из моего понимания каждый файл использует по крайней мере 1 блок, хотя его размер меньше размера блока HDFS (для меня это 64 МБ, размер по умолчанию) .i.e, я ожидаю 50 блоков для 50 файлов. Что не так с моим пониманием?

ответ

2

Файлы не требуют полных блоков. Речь идет о накладных управления ими, а также - если у вас есть действительно многие из NameNode сами по утилизации:

От Hadoop - The Definitive Guide:

маленькие файлы не занимают больше диска чем требуется для , сохраните исходное содержимое файла. Например, 1 МБ-файл, хранящийся с размером блока 128 МБ, использует 1 МБ дискового пространства, а не 128 МБ.) Архивы Hadoop или файлы HAR - это средство архивирования файлов, которое более эффективно упаковывает файлы в блоки HDFS , тем самым уменьшая использование памяти namenode , сохраняя при этом прозрачный доступ к файлам .

Однако один блок содержит только один файл - если не используется специализированный формат ввода, такой как HAR, SequenceFile или CombineFileIputFormat. Вот еще одна информация Small File problem info

+0

Таким образом, несколько файлов могут находиться в одном блоке. Правильно ли это? –

+0

Я обновил ответ, чтобы уточнить – javadba

+0

В моем случае я не использовал никаких специальных форматов. Я пишу только файлы только одной вещи, они, возможно, меньше размера блока HDFS. –

Смежные вопросы