Pourquoi HBase est un meilleur choix que Cassandra avec Hadoop?

Pourquoi utiliser HBase un meilleur choix que d'utiliser CassandraHadoop?

quelqu'un peut-il donner une explication détaillée à ce sujet?

Merci

41
demandé sur Ravindra babu 2013-02-19 09:50:21

2 réponses

je ne pense pas que ce soit mieux que les autres, ce n'est pas seulement l'un ou l'autre. Ce sont des systèmes très différents, chacun avec ses forces et ses faiblesses, donc cela dépend vraiment de vos cas d'utilisation. Ils peuvent certainement être utilisés en complément les uns des autres dans la même infrastructure.

pour mieux expliquer la différence j'aimerais emprunter une image à Cassandra: le Guide définitif, où ils vont au-dessus du théorème de CAP. Ce qu'ils disent est fondamentalement pour tout système distribué, vous devez trouver un équilibre entre cohérence,disponibilité et tolérance de partition, et vous ne pouvez satisfaire de façon réaliste que 2 de ces propriétés. De ce que vous pouvez voir que:

  • Cassandra satisfait le Disponibilité et Tolérance De Partition propriétés.
  • HBase satisfait consistance et Tolérance De Partition propriété.

CAP

en ce qui concerne Hadoop, HBase est construit sur HDFS, ce qui le rend assez pratique à utiliser si vous avez déjà une pile Hadoop. Il est également soutenu par Cloudera, qui est une distribution d'entreprise standard pour Hadoop.

mais Cassandra a aussi plus d'intégration avec Hadoop, à savoir Datastax Brisk qui gagne en popularité. Vous pouvez également maintenant nativement flux de données à partir de la sortie D'un travail Hadoop dans un Cassandra cluster à l'aide de certains Cassandra fourni par le format de sortie (BulkOutputFormat par exemple), nous ne sommes plus au point où Cassandra était juste un projet autonome.

dans mon expérience, J'ai trouvé que Cassandra est génial pour les lectures au hasard, et pas tellement pour les scans

pour mettre un peu de couleur à l'image, j'ai utilisé les deux à mon travail dans la même infrastructure, et HBase a un but très différent que Cassandra. J'ai surtout utilisé Cassandra en temps réel très rapidement. les recherches, tandis que J'ai utilisé HBase plus pour les travaux lourds par lots ETL avec des exigences de latence plus faibles.

C'est une question qui serait vraiment digne d'un billet de blog, au lieu d'aller sur et sur je tiens à vous un article qui résume beaucoup de touches de différences entre les 2 systèmes. Le fait est, il n'y a pas de solution supérieure IMHO, et vous devriez vraiment penser à vos cas d'utilisation pour voir quel système est le mieux adapté.

77
répondu Charles Menguy 2013-02-19 06:46:45

nous devons comparer les avantages et les inconvénients des deux bases de données et prendre une décision prudente en fonction des besoins de l'entreprise.

Cassandra

Avantages:

  1. Satisfait Disponibilité& Partitionnement CAP théorie & éventuellement cohérent.
  2. évolutif avec de grands amas sans Point unique de Les échecs
  3. SQL comme le langage de développement permet aux développeurs de passer facilement de RDBMS background
  4. Cassandra a excellent de rangée simple lecture de la performance aussi longtemps que la sémantique de la cohérence finale est suffisante pour les cas d'utilisation
  5. Support de Datastax est un grand avantage
  6. Optimisé pour écrit

contre:

  1. ne supporte pas row-scans basé sur la portée
  2. ne supporte pas Atomique Comparer et Set
  3. Cassandra ne supporte pas co-processeur functionalit y`
  4. Cassandra supporte index secondaires sur les familles de colonnes dont le nom est connu. (Pas sur la dynamique colonne.)
  5. Agrégations Cassandra ne sont pas pris en charge par le Cassandra nœuds

HBase

Avantages:

  1. forte consistance et rencontre Cohérence Et Partitionnement CAP théorie.
  2. SGBDR équivalent déclenche & stockées procédures d'
  3. Hadoop support
  4. scanners de rang basés sur la portée
  5. Soutien Atomique Comparer et Set
  6. Optimisé pour lit, pris en charge par une seule écriture master
  7. Soutien Agrégation
  8. grande extensibilité et partage automatique des données

contre:

  1. manque de langage amical pour développement
  2. ne supporte pas L'équilibrage de charge de lecture contre une seule rangée
  3. Entre les lignes opérations sont pas atomique
  4. point D'échec unique si un seul HBase Master a été utilisé

regardez article 1,article 2 et présentation pour plus de détails.

14
répondu Ravindra babu 2016-09-24 18:23:08