Pourquoi HBase est-il un meilleur choix que Cassandra avec Hadoop?

Pourquoi utiliser HBase un meilleur choix que d’utiliser Cassandra avec Hadoop ?

Quelqu’un peut-il s’il vous plaît donner une explication détaillée à ce sujet?

Merci

Je ne pense pas que l’un soit meilleur que les autres, ce n’est pas seulement l’un ou l’autre. Ce sont des systèmes très différents, chacun ayant ses forces et ses faiblesses. Cela dépend donc 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 de Cassandra: le Guide définitif , où ils passent en revue le théorème de CAP. Ce qu’ils disent est fondamentalement pour tout système dissortingbué, vous devez trouver un équilibre entre la cohérence , la disponibilité et la tolérance de partition , et vous ne pouvez satisfaire de manière réaliste que 2 de ces propriétés. De cela, vous pouvez voir que:

  • Cassandra répond aux propriétés de disponibilité et de tolérance de partition .
  • HBase a satisfait aux propriétés de cohérence et de tolérance de partition .

CASQUETTE

En ce qui concerne Hadoop, HBase est construit sur HDFS, ce qui le rend très pratique à utiliser si vous avez déjà une stack Hadoop. Il est également pris en charge par Cloudera, une dissortingbution d’entreprise standard pour Hadoop.

Mais Cassandra a également plus d’intégration avec Hadoop, à savoir Datastax Brisk, qui gagne en popularité. Vous pouvez également maintenant diffuser en mode natif des données de la sortie d’un travail Hadoop vers un cluster Cassandra en utilisant un format de sortie fourni par Cassandra ( BulkOutputFormat par exemple), nous ne sums plus au point où Cassandra n’était qu’un projet autonome.

Dans mon expérience, j’ai trouvé que Cassandra est génial pour les lectures aléatoires, et pas tellement pour les parsings

Pour mettre un peu de couleur sur la photo, j’ai utilisé les deux dans mon travail dans la même infrastructure, et HBase a un objective très différent de celui de Cassandra. J’ai surtout utilisé Cassandra pour des recherches très rapides en temps réel, alors que j’ai utilisé HBase davantage pour les gros travaux par lots ETL nécessitant moins de latence.

C’est une question qui mériterait vraiment un article de blog, alors au lieu de continuer, j’aimerais vous indiquer un article qui résume beaucoup de différences clés entre les deux systèmes. En bout de ligne, 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é.

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 la disponibilité et le partitionnement de la théorie de la PAC et sa cohérence éventuelle .
  2. Évolutive avec de grands groupes sans sharepoint défaillance unique
  3. Le langage SQL comme langage de développement permet aux développeurs de passer facilement d’un contexte de SGBDR
  4. Cassandra a d’ excellentes performances en lecture sur une seule ligne tant que la sémantique éventuelle de la cohérence est suffisante pour les cas d’utilisation
  5. Le support de Datastax est un gros avantage
  6. Optimisé pour les écritures

Les inconvénients:

  1. Ne prend pas en charge les parsings de ligne basées sur une plage
  2. Ne prend pas en charge la comparaison et la configuration atomiques
  3. Cassandra ne supporte pas la fonctionnalité co-processeur
  4. Cassandra prend en charge les index secondaires sur les familles de colonnes où le nom de la colonne est connu. (Pas sur les colonnes dynamics).
  5. Les agrégations dans Cassandra ne sont pas sockets en charge par les nœuds Cassandra

HBase

Avantages:

  1. Forte cohérence et respect de la cohérence et du partitionnement de la théorie de la PAC .
  2. RDBMS équivalents déclencheurs et procédures stockées
  3. Support Hadoop
  4. Analyses de lignes basées sur la plage
  5. Support Atomic Compare et Set
  6. Optimisé pour les lectures , pris en charge par un maître à écriture unique
  7. Soutien à l’ agrégation
  8. Haute évolutivité et partage automatique des données

Les inconvénients:

  1. Manque de langage convivial pour le développement
  2. Ne prend pas en charge l’équilibrage de la charge de lecture sur une seule ligne
  3. Les opérations inter-lignes ne sont pas atomiques
  4. Point de défaillance unique si un seul HBase Master a été utilisé

Consultez l’ article 1 , l’ article 2 et cette présentation pour plus de détails.