2015-12-23 2 views
1

Размер моего файла составляет 65 МБ и размер блока hdfs по умолчанию (64 МБ), то сколько 64 МБ блоков будет выделено в мой файл?Как HDFS управляет размером блока?

Это как 1-64MB блок, блок 1-1MB или блоки 2-64MB? Если это блоки размером 2-64 МБ, это будет потрачено впустую остальной части 63 МБ или будет выделено другому файлу?

ответ

2

Размер блока 64 МБ означает размер верхней границы для блока. Это не означает, что файлы размером менее 64 МБ будут потреблять 64 МБ. Он не будет потреблять 64 МБ для хранения блока 1 МБ.

Если файл 160 мегабайт, enter image description here

Надеется, что это помогает.

+0

in hadoop размер блока по умолчанию составляет 64 МБ, который определен в «hdfs-site.xml», и позволяет ли он иметь размер блока менее 64 МБ? – Thiru

+0

Как я уже сказал, 64 МБ означает максимальный размер блока. Не может быть блоков на 65 МБ. Но могут быть блоки 1 МБ. Если размер блока равен 1 МБ, для этого не выделяется 64 МБ. Это просто верхняя граница. Не задумывайтесь над этим. Просто имейте в виду, что это верхняя граница. по пути вы поймете. –

2

Согласно this page. Похоже, это будет один блок размером 64 МБ и один блок 1 МБ.

HDFS часто блаженно не осознает, что окончательная запись в одном блоке может быть только частичной записью, а остальная часть ее содержимого отключена до следующего блока. HDFS только хочет убедиться, что файлы разделены на блоки с равномерным размером, которые соответствуют предопределенному размеру блока для экземпляра Hadoop ... Не каждый файл, который вам нужно сохранить, является точным кратным размеру блока вашей системы, поэтому окончательный блок данных для файл использует только столько места, сколько необходимо.

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