Крупномасштабная обработка данных Hbase vs Cassandra [закрыто]



Я почти приземлился в Кассандре после моих исследований в области крупномасштабных решений для хранения данных. Но его вообще сказал, что Hbase является лучшим решением для крупномасштабной обработки данных и анализа.



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



Я также нашел хорошие подробности об обоих на
http://ria101.wordpress.com/2010/02/24/hbase-vs-cassandra-why-we-moved/



но я все еще ищу конкретные преимущества Hbase.



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

761   3  

3 ответов:

пытаясь определить, что лучше для вас действительно зависит от того, что вы собираетесь использовать его для, Каждый из них имеет свои преимущества и без каких-либо дополнительных деталей это становится больше религиозной войны. Этот пост, на который вы ссылались, также более года, и с тех пор оба прошли через множество изменений. Пожалуйста, также имейте в виду, что я не знаком с более поздними событиями Cassandra.

сказав, что я буду перефразировать HBase с участником Андрей Purtell и добавить некоторые из моих собственный опыт:

  • HBase находится в более крупных производственных средах (1000 узлов), хотя это все еще находится в поле зрения узла Cassandra ~400, поэтому его действительно незначительная разница.

  • HBase и Cassandra поддерживают репликацию между кластерами / центрами обработки данных. Я считаю, что HBase предоставляет больше пользователю, поэтому он кажется более сложным, но тогда вы также получаете больше гибкости.

  • Если сильная последовательность то, что нужно вашему приложению, тогда HBase, вероятно, лучше подходит. Он разработан с нуля, чтобы быть последовательным. Например, это позволяет упростить реализацию атомарных счетчиков (я думаю, что Кассандра только что их получила), а также проверять и ставить операции.

  • производительность записи велика, из чего я понимаю, что это была одна из причин, по которой Facebook пошел с HBase для своего мессенджера.

  • Я не уверен в текущем состоянии Кассандры заказывал разделитель, но в прошлом он требовал ручной перебалансировки. HBase обрабатывает это для вас, если вы хотите. Упорядоченный разделитель важен для обработки стиля Hadoop.

  • Кассандра и HBase оба сложны, Кассандра просто скрывает это лучше. HBase предоставляет его больше с помощью HDFS для его хранения, Если вы посмотрите на кодовую базу Cassandra так же многоуровнево. Если вы сравните динамические и Bigtable документы, вы можете увидеть, что теория работы Кассандры на самом деле более сложный.

  • в HBase есть несколько модульных тестов, чистки рядов.

  • все Cassandra RPC бережливость, HBase имеет бережливость, отдых и родной Java. Бережливость и отдых предлагают только подмножество общего клиентского API, но если вы хотите чистую скорость, есть собственный клиент Java.

  • есть преимущества как для однорангового, так и для ведущего устройства. Настройка master-slave обычно упрощает отладку и уменьшает совсем немного сложность.

  • HBase не привязан только к традиционным HDFS, вы можете изменить свое базовое хранилище в зависимости от ваших потребностей. MapR выглядит довольно интересно и я слышал хорошие вещи, хотя я не использовал его сам.

как разработчик Cassandra, я лучше отвечаю на другую сторону вопроса:

  • Кассандра весы лучше. Кассандра, как известно, масштабируется до более 400 узлов в кластере; когда Facebook развернул сообщения на вершине HBase, им пришлось разбить его на части 100-узловые подкластеры HBase.
  • Кассандра поддерживает сотни, даже тысячи ColumnFamilies. "HBase в настоящее время не очень хорошо работает с чем-либо выше двух или трех колонка семей."
  • как полностью распределенная система без "специальные" узлы или процессы, Кассандра проще настроить и работать, легче устранять неполадки и более надежны.
  • поддержка Cassandra для репликации с несколькими мастерами означает, что вы не только получаете очевидную мощность нескольких центров обработки данных-географическую избыточность, локальные задержки-но также можете разделить рабочие нагрузки в реальном времени и аналитические нагрузки на отдельные группы, с помощью в реальном времени, двунаправленная репликация между ними. Если вы не разделите эти рабочие нагрузки друг от друга, они будут бороться эффектно.
  • Cassandra позволяет вам выбрать, насколько сильно вы хотите, чтобы он требовал согласованности на основе каждой операции. Иногда это неправильно понимается как "Кассандра не дает вам сильной последовательности", но это неверно.
  • Кассандра предлагает RandomPartitioner, а также более Bigtable-как OrderedPartitioner. RandomPartitioner гораздо менее склонен к горячим точкам.
  • Cassandra предлагает кэширование в куче или вне кучи с производительностью, сопоставимой с memcached, но без проблем согласованности кэша или сложности, требующей дополнительных движущихся частей
  • клиенты не Java не являются гражданами второго сорта

насколько мне известно, основное преимущество HBase прямо сейчас (HBase 0.90.4 и Cassandra 0.8.4) заключается в том, что Cassandra еще не поддерживает прозрачное сжатие данных. (Это было добавлено для Cassandra 1.0, в начале октября, но сегодня это реальное преимущество для HBase.) HBase также может быть лучше оптимизирован для видов сканирования диапазона, выполняемых пакетной обработкой Hadoop.

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

надеюсь, что это поможет!

причина использования 100 узлов кластеров hBase не в том, что HBase не масштабируется до больших размеров. Это потому, что это легче сделать HBase/HDFS обновления программного обеспечения на прокатке моды без снижения всей службы. Другая причина заключается в том, чтобы запретить одному NameNode быть SPOF для всей службы. Кроме того, HBase используется для различных служб (а не только для сообщений FB), и разумно использовать подход cookie-cutter для настройки многочисленных кластеров HBase на основе 100-узла стручковый подход. Число 100 является adhoc, мы не фокусировались на том, является ли 100 оптимальным или нет.

Comments

    Ничего не найдено.