Использование HDFS не изменит того, что вы заставляете hadoop обрабатывать большое количество маленьких файлов. Наилучшим вариантом в этом случае, вероятно, является cat
файлов в один (или несколько больших) файлов.
Это уменьшит количество картографов, которые у вас есть, и уменьшит количество вещей, которые необходимо обработать.
Использование HDFS может повысить производительность, если вы работаете в распределенной системе. Если вы используете только псевдо-дистрибутив (один компьютер), то HDFS не собирается улучшать производительность. Ограничение - машина.
Когда вы работаете с большим количеством небольших файлов, для этого потребуется большое количество картографических и редукторных файлов. Настройка / завершение может быть сопоставима со временем обработки самого файла, что приводит к большим накладным расходам. cat
Использование файлов должно уменьшить число циклов выполнения цикла, выполняемых преобразователями для задания, что должно повысить производительность.
Преимущество использования файловой системы HDFS для хранения файлов будет в распределенном режиме с несколькими компьютерами. Файлы будут храниться в блоках (по умолчанию 64 МБ) на разных машинах, и каждая машина будет способна обрабатывать блок данных, который находится на машине. Это уменьшает использование полосы пропускания сети, поэтому она не становится узким местом в обработке.
Архивирование файлов, если hadoop собирается их разархивировать, просто приведет к тому, что у hadoop останется большое количество маленьких файлов.
Надеюсь, это поможет вам понять.