1

Задача состоит в том, чтобы обрабатывать ОГРОМНОЕ (около 10 000 000) количество маленьких файлов (каждый вокруг 1 МБ) независимо (то есть результат обработки файла F1, не зависит от результата обработки F2).Обработка ОГРОМНОЕ количество небольших файлов независимо

Кто-то предложил Map-Reduce (на Amazon-EMR Hadoop) для моей задачи. Однако у меня есть серьезные сомнения в отношении МР.

Причина в том, что файлы обработки в моем случае независимы. Насколько я понимаю MR, он лучше всего работает, когда вывод зависит от многих отдельных файлов (for example counting the frequency of each word, given many documents, поскольку слово может быть включено в любой документ во входном файле). Но в моем случае мне просто нужно много независимых процессоров/ядер.

Мне было интересно, если у вас есть какие-либо советы по этому вопросу.


Примечания: Существует еще одна проблема, которая заключается в том, что MR работает лучше всего для «огромных файлов, а не огромного количества небольших размеров». Although there seems to be solutions for that. Так что я пока игнорирую это.

ответ

1

Возможно использование карты для ваших нужд. В MapReduce есть две фазы Map и Reduce, однако фаза reduce не обязательна, только для вашей ситуации вы можете написать задание MapReduce map-only, и все вычисления в одном файле должны быть помещены в настраиваемую функцию Map ,

Однако, я не обрабатывал такое огромное количество файлов в одном задании, не знаю о его эффективности. Попробуйте сами, и поделитесь с нами :)

1

Это довольно легко сделать. В таких случаях - данные для задания MR обычно представляют собой список файлов (а не самих файлов). Таким образом, размер данных, представленных в Hadoop, - это размер имен файлов 10M, что составляет порядка нескольких гигов.

Один использует MR, чтобы разбить список файлов на более мелкие фрагменты (сколько может контролироваться различными опциями). Затем каждый картограф получает список файлов. Он может обрабатывать один файл за раз и генерировать вывод.

(fwiw - Я бы предложил Qubole (где я основатель) вместо EMR, потому что это сэкономит вам массу денег с автоматическим масштабированием и интеграцией точек).

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