В нашей компании у нас есть база данных MongoDB, содержащая много неструктурированных данных, по которым нам нужно запускать алгоритмы преобразования карт для генерации отчетов и других анализов. У нас есть два подхода для выбора необходимого анализа:
Один из подходов заключается в извлечении данных из MongoDB в кластер Hadoop и проведении анализа полностью на платформе Hadoop. Однако это требует значительных инвестиций в подготовку платформы (программного и аппаратного обеспечения) и обучение команды работе с Hadoop и написанию для нее задач сокращения карт.
Другой подход заключается в том, чтобы просто приложить усилия к разработке алгоритмов сокращения карт и запустить алгоритмы на функциональных возможностях MongoDB map-Reduce. Таким образом, мы можем создать начальный прототип окончательной системы, которая может генерировать отчеты. Я знаю, что функции сокращения карт MongoDB намного медленнее по сравнению с Hadoop, но в настоящее время данные не настолько велики, что делает это узким местом еще, по крайней мере, в течение следующих шести месяцев.
Вопрос в том, используя второй подход и написание алгоритмов для MongoDB, могут ли они быть позже перенесены в Hadoop с небольшими необходимыми изменениями и перепроектированием алгоритма? MongoDB просто поддерживает JavaScript, но программирование языковые различия просты в обращении. Тем не менее, есть ли принципиальные различия в карте-свертке модели MongoDB и Hadoop, которые могут заставить нас редизайн алгоритмов существенно для портирования на Hadoop?