Я управляю небольшой командой разработчиков, и в любой момент времени у нас есть несколько проектов (одноразовых) данных, которые можно было бы считать "Смутно параллельным" - Обычно они включают в себя запуск одиночного script на одном компьютере в течение нескольких дней, классический пример - обработка нескольких тысяч PDF файлов для извлечения некоторого ключевого текста и размещение в CSV файле для последующей вставки в базу данных.
Теперь мы выполняем достаточно таких задач, которые я начал исследовать при разработке простой очереди очередей с использованием RabbitMQ с несколькими запасными серверами (с целью использования Amazon SQS/S3/EC2 для проектов, требующих большего масштабирования)
В поисках примеров других, которые делают это, я постоянно сталкиваюсь с классическим примером Hadoop New York Times:
New York Times использовала 100 экземпляров Amazon EC2 и приложение Hadoop для обработки 4 ТБ необработанных данных TIFF изображения (хранящихся на S3) в 11 миллионов готовых PDF файлов в течение 24 часов при стоимости вычислений около $240 (не включая полосу пропускания)
Что звучит идеально? Поэтому я исследовал Hadoop и Map/Reduce.
Но что я не могу решить, как они это сделали? Или почему они это сделали?
Преобразование TIFF в PDF не является проблемой Map/Reduce? Разве простая работа не была бы лучше?
Другой классический пример Hadoop - "wordcount" из Yahoo Hadoop Tutorial, кажется, идеально подходит для Map/Reduce, и я могу понять, почему это такое мощный инструмент для больших данных.
Я не понимаю, как эти "смущающие параллельные" задачи помещаются в шаблон Map/Reduce?
TL; DR
Это очень концептуальный вопрос, в основном я хочу знать, как бы мне подгонять задачу "обрабатывать несколько тысяч PDF файлов для извлечения некоторого ключевого текста и помещать в файл CSV" в шаблон Map/Reduce?
Если вы знаете какие-либо примеры, которые были бы идеальными, я не прошу вас написать его для меня.
(Примечания: У нас есть код для обработки PDF файлов, я не прошу об этом - это всего лишь пример, это может быть любая задача. Я прошу о том, чтобы эти процессы как в шаблоне Hadoop Map/Reduce - когда нет четких элементов "Карта" или "Уменьшить" для задачи.)
Ура!