2015-09-09 5 views
0

У меня есть 4 файла на hdfs.Число Mappers

1.txt, 2.txt, 3.txt и 4.txt. Из этих 4 файлов первые 3 файла содержат данные, как указано ниже, и файл 4.txt пуст. Как могут выполняться преобразования.

Число копий = количество входных разрывов.

Мой вопрос: все ли эти файлы хранятся в одном блоке 64 МБ или 4 разных блоках? поскольку данные для каждого файла меньше 64 МБ.

1.txt Это текстовый файл 1

2.txt Это текстовый файл 2

3.txt Это текстовый файл, 3

4.txt "Пустой"

ответ

2

Он будет храниться в 4 разных блоках, если только до тех пор, пока вы его не закроете и не сохраните в файле HAR. Концепция заключается в том, что размер вашего файла больше, чем размер блока, тогда ваш единственный файл будет разделен и сохранен в разных блоках, иначе, если он меньше размера блока, тогда файлы будут храниться независимо в разных блоках. Но, однако, он не будет использовать больше, чем фактический размер файла, даже если размер блока составляет 64 МБ или более. Котировка из окончательного руководства:

HDFS хранит небольшие файлы неэффективно, так как каждый файл хранится в блоке, а метаданные блоков хранятся в памяти посредством namenode. Таким образом, большое количество небольших файлов может съесть много памяти на наменоводе.

Так что в вашем случае он по-прежнему будет использовать 4 карты, поскольку у нас есть 4 блока.

0

HDFS по умолчанию не объединяет небольшие файлы в один блок. HDFS сохранит все файлы в отдельных блоках, поэтому ваш HDFS будет использовать 4 блока для хранения ваших 4-файлов (каждый меньше, чем dfs.block.size). Это не означает, что HDFS будет занимать 4 * 64 МБ размера. Если ваша MR-задание будет порождена 4 Mappers для чтения всех файлов

В идеале вы не должны хранить небольшие файлы на HDFS, так как это увеличит нагрузку на Namenode.

Вы можете комбинировать файлы перед загрузкой в ​​HDFS с помощью утилиты unix или конвертировать файлы в файлы последовательности или писать скрипт/скрипт для скрипта/сценарий свиста для объединения всех небольших файлов в большие файлы. Небольшие файлы на HDFS описаны здесь очень хорошо: http://blog.cloudera.com/blog/2009/02/the-small-files-problem/

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