Warum ist die Verwendung von HBase
eine bessere Wahl als die Verwendung von Cassandra
mit Hadoop
?Warum HBase ist eine bessere Wahl als Cassandra mit Hadoop?
Kann mir bitte jemand eine detaillierte Erklärung dazu geben?
Dank
Warum ist die Verwendung von HBase
eine bessere Wahl als die Verwendung von Cassandra
mit Hadoop
?Warum HBase ist eine bessere Wahl als Cassandra mit Hadoop?
Kann mir bitte jemand eine detaillierte Erklärung dazu geben?
Dank
Das glaube ich auch nicht besser ist als die anderen, ist es nicht nur das eine oder das andere. Das sind sehr unterschiedliche Systeme, jede mit ihren Stärken und Schwächen, also kommt es wirklich auf Ihre Anwendungsfälle an. Sie können definitiv in der gleichen Infrastruktur in Ergänzung verwendet werden.
Um den Unterschied besser zu erklären, ich ein Bild von Cassandra: the Definitive Guide ausleihen möchte, wo sie über das CAP-Theorem gehen. Was sie sagen, ist grundsätzlich für jede verteilte System, müssen Sie, ein ausgewogenes Verhältnis zwischen Konsistenz finden Verfügbarkeit und Partitionstoleranz, und Sie können nur zwei dieser Eigenschaften realistisch erfüllen. Daraus kann man sehen, dass:
Wenn es um Hadoop wird HBase oben auf HDFS gebaut, die es ziemlich bequem macht, um zu verwenden, wenn Sie bereits eine Hadoop-Stack haben. Es wird auch von Cloudera unterstützt, einer Standard-Unternehmensverteilung für Hadoop.
Aber Cassandra hat auch mehr Integration mit Hadoop, nämlich DataStax Brisk das an Popularität gewinnt. Sie können Daten auch von der Ausgabe eines Hadoop-Jobs in einen Cassandra-Cluster unter Verwendung eines von Cassandra bereitgestellten Ausgabeformats (z. B. BulkOutputFormat
) nativ streamen. Wir sind nicht mehr so weit, dass Cassandra nur ein eigenständiges Projekt war.
Nach meiner Erfahrung, die ich gefunden habe, dass Cassandra für für Scans
zufällig liest, und nicht so sehr genial ist ein wenig Farbe ins Bild zu setzen, habe ich in meinem Job sowohl in der Verwendung gewesen gleiche Infrastruktur, und HBase hat einen ganz anderen Zweck als Cassandra. Ich habe Cassandra hauptsächlich für schnelle Suchvorgänge in Echtzeit verwendet, während ich HBase eher für schwere ETL-Batch-Jobs mit geringeren Latenzanforderungen verwendet habe.
Dies ist eine Frage, die wirklich eines Blogbeitrags würdig wäre. Anstatt also weiter und weiter zu gehen, möchte ich Sie auf an article hinweisen, die viele der Hauptunterschiede zwischen den beiden Systemen zusammenfasst. Das Endergebnis ist, es gibt keine überlegene Lösung IMHO, und Sie sollten wirklich über Ihre Anwendungsfälle nachdenken, welches System besser geeignet ist.
Wir müssen Profis vergleichen & beide Datenbanken und eine gehütete Entscheidung je nach Geschäftsanforderungen treffen.
Cassandra
Vorteile:
Nachteile:
HBase
Pro:
Nachteile:
Werfen Sie einen Blick auf article 1, article 2 und dieses presentation für weitere Details.
Wie kann MySql Verfügbarkeit in Ihrem Diagramm haben? Wie ist die Verfügbarkeit definiert? Es hat keinen Sinn für mich, ich denke, dass Sie zwischen C oder A wählen müssen, keine 2. http://codahale.com/you-cant-sacrifice-partition-tolerance/ – user1944408
@ user1944408 Natürlich in jedem System gibt es ein Gefühl des Kompromisses, dies ist nur um die Gleitabhängigkeiten zu veranschaulichen. Sie können nicht 100% einer Eigenschaft erhalten, während Sie 100% einer anderen Eigenschaft beibehalten, Sie müssen einige Kompromisse eingehen. In Ihrem Artikel wird von der Partitionstoleranz ausgegangen, daher können Sie mit dieser Annahme natürlich nicht Konsistenz und Verfügbarkeit haben. Wie aus demselben Buch entnommen, können die Systeme in der CA-Leitung beispielsweise zweiphasige Commits für verteilte Transaktionen sein, so dass das System blockieren würde, wenn eine Netzwerkpartition auftritt. –
Das bedeutet, dass sie nicht verfügbar sind, wenn die Partition auftritt, oder? Aber das ist auch bei HBase dasselbe, also würde HBase CA sein. Ich denke, dass Datenbanken CP oder AP aber nicht CA sein können. Welche Eigenschaft der CA-Datenbank ist nicht in der CP-Datenbank enthalten? Kannst du mir ein Beispiel geben? Wenn eine Partition passiert, was ist der Unterschied zwischen HBase und sharked MySql? – user1944408