Очень простой вопрос о Hadoop и сжатых входных файлах

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

Мой вопрос, предполагая, что вышеупомянутое корректно, действительно ли это возможно разделить большой файл вручную в блоках фиксированного размера или ежедневно разделяет на блоки, сожмите их и затем передайте список сжатых входных файлов для выполнения mapreduce?

19
задан Jørn Schou-Rode 11 April 2010 в 14:00
поделиться

3 ответа

Да, у вас может быть один большой сжатый файл или несколько сжатых файлов (несколько файлов, указанных с -files или API).

TextInputFormat и потомки должны автоматически обрабатывать сжатые файлы .gz. Вы также можете реализовать свой собственный Intformat (который разделяет входной файл в куски для обработки) и rendReader (который извлекает одну запись одновременно из чанка)

Для общего Copmression может быть использование сжатой файловой системы (например, Ext3 с патч сжатия, ZFS, Compfused или FuseCompress ...)

3
ответ дан 30 November 2019 в 05:06
поделиться

Вы можете использовать BZ2 в качестве Compress Codec, и этот формат также может быть разделен.

1
ответ дан 30 November 2019 в 05:06
поделиться

Рассмотрим использование сжатия LZO. Это splittable. Это означает, что большой файл .lzo может быть обработан многими Mappers. BZIP2 может сделать это, но это медленно.

Клузда имел введение . Для Maprecuce LZO звучит хороший баланс между соотношением сжатия и скоростью сжимания / распаковки.

5
ответ дан 30 November 2019 в 05:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: