HBase Кассандра couchdb Mongodb .. какая разница? - PullRequest
15 голосов
/ 06 сентября 2010

Я просто хотел узнать, есть ли принципиальная разница между hbase, cassandra, couchdb и monogodb? Другими словами, все ли они конкурируют на одном и том же рынке и пытаются решить одни и те же проблемы? Или они лучше всего подходят для разных сценариев?

Все это сводится к вопросу, что мне выбрать, когда. Дело вкуса?

Спасибо,

Федерико

Ответы [ 4 ]

12 голосов
/ 07 сентября 2010

Это длинные ответы от @ Bohzo . (но это хорошие ссылки)

Правда в том, что они "отчасти" соревнуются. Но у них определенно есть свои сильные и слабые стороны, и они определенно не решают одни и те же проблемы.

Например, Couch и Mongo оба предоставляют движки Map-Reduce как часть основного пакета. HBase - это (в основном) слой поверх Hadoop, поэтому вы также получаете M-R через Hadoop. Cassandra очень сосредоточена на том, чтобы быть хранилищем Key-Value и имеет плагины для «наслоения» Hadoop поверх (так что вы можете уменьшать карту).

Некоторые из БД предоставляют MVCC (управление несколькими версиями параллелизма). Монго нет.

Все эти БД предназначены для горизонтального масштабирования, но они делают это по-разному. Все эти БД также пытаются обеспечить гибкость различными способами. Гибкие размеры документов или REST API, высокая избыточность или простота использования - все они делают разные компромиссы.

Итак, на ваш вопрос: Другими словами, все ли они конкурируют на одном и том же рынке и пытаются решить те же самые проблемы?

  1. Да : все они пытаются решить проблему масштабируемости и производительности базы данных.
  2. Нет : они определенно делают различные компромиссы.

С чего начать?

Чувак, это сложный вопрос. Я работаю в большой компании, собирая тонны данных, и мы прошли через несколько лет. Мы однажды попробовали Cassandra пару лет назад, и она не справилась с нагрузкой. Мы используем Hadoop везде, но у него определенно крутая кривая обучения, и он не сработал в некоторых наших средах. Совсем недавно мы пытались сделать Cassandra + Hadoop, но оказалось, что это была большая работа по настройке.

Лично мой отдел перемещает несколько вещей в MongoDB . Наши причины для этого, честно говоря, просто простота.

Настройка Mongo на Linux-машине занимает несколько минут и не требует root-доступа, изменения файловой системы или чего-то необычного. Нет необходимости в сумасшедших конфигурационных файлах или перекомпиляции java. Таким образом, с этой точки зрения, Mongo был самым простым «наркотиком для ворот» для привлечения людей в магазины KV / Document.

5 голосов
/ 29 июля 2011

Краткий ответ: тест перед использованием в производстве.

Я могу предложить свой опыт с HBase (расширенный) и MongoDB (только начало).

Несмотря на то, что они не являются одинаковыми магазинами, они решают одни и те же проблемы:

  • масштабируемое хранилище данных
  • произвольный доступ к данным
  • доступ с низкой задержкой

Сначала мы были в восторге от HBase. Он построен на Hadoop (он очень прочный), работает под Apache, он активен ... что еще можно пожелать? Наш опыт:

  • HBase хрупкий
  • кошмар администратора (полный настроек конфигурации, где настройки по умолчанию не идеальны, непрозрачная конфигурация, изменения от версии к версии, ...)
  • теряет данные (если вы не установили конфигурацию X и не изменили Y на ... вы понимаете, что у вас получилось :) - мы обнаружили это, когда HBase потерпел крах, и потеряли 2 часа (!!!) данных, потому что WAL не было правильно настроить
  • не хватает вторичных индексов
  • отсутствует какой-либо способ сделать резервную копию базы данных, не выключая ее

В общем, HBase был кошмаром. Не рекомендую никому, кроме наших прямых конкурентов. :)

MongoDB решает все эти проблемы и многое другое. Это очень приятно для настройки, оно делает администрирование простым и прозрачным заданием, а настройки конфигурации по умолчанию действительно имеют смысл. Вы можете выполнять (горячее) резервное копирование, у вас могут быть вторичные индексы. Из того, что я прочитал, я бы не рекомендовал MapReduce на MongoDB (JavaScript, только 1 поток на узел), но вы можете использовать для этого Hadoop.

И он также ОЧЕНЬ активен по сравнению с HBase.

Также: http://www.google.com/trends?q=HBase%2CMongoDB

Должен ли я сказать больше? :)

ОБНОВЛЕНИЕ: много месяцев спустя я должен сказать, что MongoDB доставлен по всем аккаунтам и многое другое. Единственный реальный недостаток заключается в том, что хостинговые компании не предлагают его так, как они предлагают MySQL. ;) Также похоже, что MapReduce обязательно станет многопоточным в 2.2. Тем не менее, я бы не использовал MR таким образом. YMMV.

5 голосов
/ 06 сентября 2010
  • CouchDB и MongoDB являются хранилищами документов
  • Cassandra и HBase основаны на значении ключа

Вот подробное сравнение между HBase и Cassandra
Вот (смещенное) сравнение между MongoDB и CouchDB

1 голос
/ 22 марта 2012

Кассандра хороша для записи данных.у него есть преимущество «пишет никогда не ошибается».У него нет единой точки сбоя.

HBase очень хорош для обработки данных.HBase основан на файловой системе Hadoop (HDFS), поэтому HBase не нужно беспокоиться о репликации данных, их согласованности.HBase имеет единственную точку отказа.Я не совсем уверен, что это значит, если у него есть единственная точка отказа, то это похоже на RDBMS, где у нас есть единственная точка отказа.Я могу ошибаться, так как я совсем новичок.

Как насчет RIAK?Есть ли у кого-то опыт использования RIAK.Я красный где-то, что вы должны заплатить, я не уверен.Нужно объяснение.

Еще одна вещь, которую вы предпочитаете использовать, когда вы заинтересованы только в чтении большого количества данных.Вы не имеете никакого отношения к письму.Представьте, что у вас есть база данных с питабитом, и вы хотите быстро найти, какую базу данных NOSQL вы бы предпочли?

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