Kassandra gegen HBase

Die folgende Tabelle gibt die Hauptunterschiede zwischen Cassandra und HBase an:


HBaseKassandra
HBase basiert auf Bigtable (Google)Cassandra basiert auf DynamoDB (Amazon). Es wurde ursprünglich bei Facebook von ehemaligen Amazon-Ingenieuren entwickelt. Dies ist einer der Gründe, warum Cassandra mehrere Rechenzentren unterstützt.
HBase nutzt die Hadoop-Infrastruktur (Zookeeper, NameNode, HDFS). Organisationen, die Hadoop einsetzen, müssen über Kenntnisse von Hadoop und HBase verfügenCassandra wurde unabhängig von Hadoop gestartet und weiterentwickelt, und die Anforderungen an Infrastruktur und Betriebswissen unterscheiden sich von denen von Hadoop. Für Analysen verwenden viele Cassandra-Bereitstellungen jedoch Cassandra + Storm (das Zookeeper verwendet) und/oder Cassandra + Hadoop.
Die HBase-Hadoop-Infrastruktur hat mehrere „bewegliche Teile“, bestehend aus Zookeeper, Name Node, HBase Master und Datenknoten, Zookeeper ist geclustert und natürlich fehlertolerant. Name Node muss geclustert werden, um fehlertolerant zu sein.Cassandra verwendet einen einzelnen Knotentyp. Alle Knoten sind gleich und führen alle Funktionen aus. Jeder Knoten kann als Koordinator fungieren, wodurch kein Spof sichergestellt wird. Das Hinzufügen von Storm oder Hadoop erhöht natürlich die Komplexität der Infrastruktur.
HBase eignet sich gut für bereichsbasierte Scans.Cassandra unterstützt keine bereichsbasierten Zeilenscans, die in bestimmten Anwendungsfällen einschränkend sein können.
HBase ermöglicht die asynchrone Replikation eines HBase-Clusters über ein WAN.Cassandra-Zufallspartitionierung ermöglicht die Zeilenreplikation einer einzelnen Zeile über ein WAN.
HBase unterstützt nur geordnete Partitionierung.Cassandra unterstützt offiziell die geordnete Partitionierung, aber kein Produktionsbenutzer von Cassandra verwendet die geordnete Partitionierung aufgrund der von ihr erzeugten “Hotspots” und der Betriebsschwierigkeiten, die solche Hotspots verursachen.
Aufgrund der geordneten Partitionierung lässt sich HBase problemlos horizontal skalieren und unterstützt dennoch Rowkey-Bereichsscans.Wenn Daten in Cassandra in Spalten gespeichert werden, um Bereichsscans zu unterstützen, beträgt die praktische Beschränkung einer Zeilengröße in Cassandra 10 Megabyte.
HBase unterstützt atomares Vergleichen und Festlegen. HBase unterstützt Transaktionen innerhalb einer Zeile.Cassandra unterstützt kein atomares Vergleichen und Festlegen.
HBase unterstützt keinen Leselastausgleich für eine einzelne Zeile. Eine einzelne Zeile wird jeweils von genau einem Regionsserver bedient.Cassandra unterstützt den Leselastausgleich für eine einzelne Zeile.
Bloom-Filter können in HBase als weitere Form der Indizierung verwendet werden.Cassandra verwendet Bloom-Filter für die Schlüsselsuche.
Trigger werden durch die Koprozessorfähigkeit in HBase unterstützt.Cassandra unterstützt keine Coprozessor-ähnliche Funktionalität.

osky