2015-10-10 7 views
2

Мы выбираем формат файла для хранения наших необработанных журналов, основные требования сжимаются и расщепляются. Блок-сжатый (какой-либо кодек) SequenceFiles и Hadoop-LZO выглядят наиболее подходящими до сих пор.Hadoop SequenceFile vs splittable LZO

Какой из них более эффективен для обработки с помощью Map-Reduce и проще иметь дело с общим?

ответ

0

Для необработанных журналов рекомендуется использовать формат файла контейнера, такой как SequenceFileFormat, который поддерживает сжатие и разделение. Для хранения журналов с использованием этого формата вам нужно будет выбрать временную метку в качестве ключа и зарегистрированной строки в качестве значения. В нашей команде мы широко используем SequenceFiles.

Для расщепляемого LZO вам необходимо предварительно обработать файлы для генерации индекса. Без индекса структура MapReduce будет обрабатывать весь файл как единый раскол (один картограф), и обработка будет неэффективной.

В книге «Hadoop The Definitive Guide» (я предлагаю вам прочитать раздел «Сжатие»), есть раздел, рекомендующий использовать формат сжатия. В соответствии с рекомендацией, являются следующими вариантами от наиболее эффективных наименее эффективные:

  1. форматов Container как SequenceFile, Avro, ORCFiles, Паркетные файлы с быстрым компрессором, как LZO, LZ4 или Snappy

  2. формат сжатия, который поддерживает разделение: bzip2 или расщепляющееся LZO

  3. разбить файл на куски и каждый кусок сжимают отдельно, используя формат сжатия

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

  • Нет связанных вопросов^_^