Мой ответ основан на знаниях и опыте Hadoop MR и изучении Mongo DB MR.
Давайте посмотрим, каковы основные различия, а затем попробуем определить критерии для выбора:
Отличия:
- MR Hadoop может быть написана на Java, а MongoDB - на JavaScript.
- MR Hadoop способен использовать все ядра, в то время как MongoDB однопоточные.
- Hadoop MR не будет сопоставляться с данными, в то время как базы данных Mongo будут сопоставляться.
- Hadoop MR имеет миллионы оборотов в час и может справиться со многими угловыми случаями с огромным размером вывода, перекосами данных и т. Д.
- Существуют платформы более высокого уровня, такие как Pig, Hive, Cascading, построенные на основе движка Hadoop MR.
- Hadoop MR является основным направлением деятельности и доступна широкая поддержка сообщества.
Из вышесказанного могу предложить следующие критерии выбора:
Выберите Mongo DB MR, если вам нужна простая группировка и фильтрация, не ожидайте сильных перетасовок между картой и сокращением. Другими словами - что-то простое.
Выберите Hadoop MR, если вы собираетесь выполнять сложные, требующие большого объема вычислений задания MR (например, некоторые вычисления регрессий). Наличие большого или непредсказуемого размера данных между картой и уменьшением также предлагает Hadoop MR.
Java - более сильный язык с большим количеством библиотек, особенно статистических. Это следует учитывать.