Hadoop Map / Уменьшить против встроенной карты / Уменьшить - PullRequest
22 голосов
/ 15 февраля 2012

Каковы основные отличия, чтобы сделать карту / уменьшить работу на MongoDB, используя карту Hadoop / уменьшить по сравнению со встроенной картой / уменьшить Монго?

Когда мне выбрать карту или уменьшить двигатель? Каковы плюсы и минусы каждого движка для работы с данными, хранящимися в mongodb?

Ответы [ 4 ]

31 голосов
/ 15 февраля 2012

Мой ответ основан на знаниях и опыте Hadoop MR и изучении Mongo DB MR. Давайте посмотрим, каковы основные различия, а затем попробуем определить критерии для выбора: Отличия:

  1. MR Hadoop может быть написана на Java, а MongoDB - на JavaScript.
  2. MR Hadoop способен использовать все ядра, в то время как MongoDB однопоточные.
  3. Hadoop MR не будет сопоставляться с данными, в то время как базы данных Mongo будут сопоставляться.
  4. Hadoop MR имеет миллионы оборотов в час и может справиться со многими угловыми случаями с огромным размером вывода, перекосами данных и т. Д.
  5. Существуют платформы более высокого уровня, такие как Pig, Hive, Cascading, построенные на основе движка Hadoop MR.
  6. Hadoop MR является основным направлением деятельности и доступна широкая поддержка сообщества.

Из вышесказанного могу предложить следующие критерии выбора:
Выберите Mongo DB MR, если вам нужна простая группировка и фильтрация, не ожидайте сильных перетасовок между картой и сокращением. Другими словами - что-то простое.

Выберите Hadoop MR, если вы собираетесь выполнять сложные, требующие большого объема вычислений задания MR (например, некоторые вычисления регрессий). Наличие большого или непредсказуемого размера данных между картой и уменьшением также предлагает Hadoop MR.

Java - более сильный язык с большим количеством библиотек, особенно статистических. Это следует учитывать.

10 голосов
/ 17 февраля 2013

Начиная с MongoDB 2.4, задания MapReduce больше не являются однопоточными.

Кроме того, см. Aggregation Framework для более эффективного, декларативного способа выполнения агрегатов и других аналитических рабочих нагрузок в MongoDB.

1 голос
/ 24 апреля 2015

Пункт 3, безусловно, неверен, когда речь идет о Hadoop. Обработка колокейшн с данными является частью основы Hadoop.

0 голосов
/ 15 февраля 2012

У меня нет большого опыта работы с Hadoop MR, но у меня сложилось впечатление, что он работает только на HDFS, поэтому вам придется дублировать все данные Mongo в HDFS. Если вы готовы дублировать все свои данные, я думаю, Hadoop MR гораздо быстрее и надежнее, чем Mongo MR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...