Почему HBase - лучший выбор, чем Cassandra с Hadoop?

Почему используется HBase лучший выбор, чем использование Cassandra с Hadoop?

Может ли кто-нибудь дать подробное объяснение этого?

Спасибо

2 ответа

Решение

Я не думаю, что либо лучше, чем другие, это не просто один или другой. Это очень разные системы, каждая из которых имеет свои сильные и слабые стороны, поэтому это действительно зависит от ваших вариантов использования. Они могут определенно использоваться в дополнение друг к другу в той же инфраструктуре.

Чтобы лучше объяснить разницу, я бы хотел позаимствовать картину у Кассандры: "Полное руководство", где они приводят теорему CAP. То, что они говорят, в основном для любой распределенной системы, вы должны найти баланс между согласованностью, доступностью и допустимостью раздела, и вы можете реально удовлетворить только 2 из этих свойств. Из этого вы можете видеть, что:

  • Кассандра удовлетворяет свойствам " Доступность" и " Допуск раздела".
  • HBase удовлетворяет свойствам согласованности и допусков разделов.

КРЫШКА

Когда дело доходит до Hadoop, HBase построен поверх HDFS, что делает его довольно удобным для использования, если у вас уже есть стек Hadoop. Он также поддерживается Cloudera, который является стандартным корпоративным дистрибутивом для Hadoop.

Но Cassandra также имеет большую интеграцию с Hadoop, а именно Datastax Brisk, который набирает популярность. Теперь вы также можете напрямую передавать данные из выходных данных задания Hadoop в кластер Cassandra, используя некоторый формат вывода, предоставленный Cassandra (BulkOutputFormat например), мы уже не до такой степени, что Кассандра была просто автономным проектом.

По своему опыту я обнаружил, что Кассандра хороша для случайного чтения, и не так уж много для сканирования

Чтобы немного покрасить картину, я использовал оба на своей работе в одной и той же инфраструктуре, и у HBase совсем другое назначение, чем у Cassandra. Я использовал Cassandra главным образом для очень быстрых поисков в реальном времени, в то время как я использовал HBase больше для тяжелых пакетных заданий ETL с меньшими требованиями к задержке.

Это вопрос, который действительно заслуживает публикации в блоге, поэтому вместо того, чтобы продолжать и продолжать, я хотел бы указать вам на статью, в которой резюмируется множество ключевых различий между двумя системами. Суть в том, что не существует превосходного решения IMHO, и вы должны действительно подумать о своих вариантах использования, чтобы увидеть, какая система лучше подходит.

Мы должны сравнить плюсы и минусы обеих баз данных и принять взвешенное решение в зависимости от требований бизнеса.

Cassandra

Плюсы:

  1. Удовлетворяет доступность и разделение теории CAP и возможное соответствие.
  2. Масштабируемость с большими кластерами без единой точки отказа
  3. SQL- подобный язык для разработки позволяет разработчикам легко переходить с фона RDBMS
  4. Cassandra имеет отличную производительность чтения одной строки, если семантика возможной согласованности достаточна для вариантов использования
  5. Поддержка от Datastax - большое преимущество
  6. Оптимизирован для записи

Минусы:

  1. Не поддерживает сканирование строк на основе диапазона
  2. Не поддерживает Atomic Compare и Set
  3. Cassandra не поддерживает функционал сопроцессора
  4. Cassandra поддерживает вторичные индексы для семейств столбцов, для которых известно имя столбца. (Не на динамических столбцах).
  5. Агрегации в Кассандре не поддерживаются узлами Кассандры

HBase

Плюсы:

  1. Сильная последовательность и соответствует теории последовательности и разделения CAP.
  2. Эквивалентные триггеры и хранимые процедуры СУБД
  3. Поддержка Hadoop
  4. Диапазон сканирования строк
  5. Поддержка атомного сравнения и установки
  6. Оптимизирован для чтения, поддерживается одним мастером записи
  7. Поддержка агрегации
  8. Высокая масштабируемость и автоматическое распределение данных

Минусы:

  1. Не хватает дружественного языка для развития
  2. Не поддерживает чтение нагрузки балансировки для одной строки
  3. Операции между рядами не являются атомарными
  4. Единственная точка отказа, если был использован только один HBase Master

Посмотрите на статью 1, статью 2 и эту презентацию для получения более подробной информации.

Другие вопросы по тегам