Question

Je suis intéressé à découvrir comment le récemment publié (http://mirror.facebook.com/facebook/hive/hadoop-0.17/) Hive se compare à HBase en termes de performances.L'interface de type SQL utilisée par Hive est de loin préférable à l'API HBase que nous avons implémentée.

Était-ce utile?

La solution

Il est difficile de trouver grand chose sur Hive, mais j'ai trouvé ceci fragment sur le site Hive qui penche fortement en faveur de HBase (gras ajouté) :

Hive est basé sur Hadoop qui est un système de traitement par lots.En conséquence, ce système ne fonctionne pas et ne peut pas promettre de faibles latences sur les requêtes.Le paradigme ici consiste strictement à soumettre des tâches et à être averti lorsque les tâches sont terminées, par opposition aux requêtes en temps réel.En conséquence, il ne doit pas être comparé à des systèmes comme Oracle, où l'analyse est effectuée sur une quantité de données nettement inférieure, mais où l'analyse se déroule de manière beaucoup plus itérative, les temps de réponse entre les itérations étant inférieurs à quelques minutes. Pour les requêtes Hive, les temps de réponse, même pour les plus petites tâches, peuvent être de l'ordre de 5 à 10 minutes et pour les tâches plus importantes, cela peut même durer plusieurs heures.

Étant donné que HBase et HyperTable sont axés sur les performances (sur le modèle de BigTable de Google), ils semblent certainement beaucoup plus rapides que Hive, au détriment des fonctionnalités et d'une courbe d'apprentissage plus élevée (par exemple, ils n'ont pas de jointures ou de SQL). -syntaxe de type).

Autres conseils

D'un certain point de vue, Hive se compose de cinq composants principaux :une grammaire et un analyseur de type SQL, un planificateur de requêtes, un moteur d'exécution de requêtes, un référentiel de métadonnées et une disposition de stockage en colonnes.Son objectif principal est les charges de travail analytiques de type entrepôt de données, de sorte qu'une récupération à faible latence des valeurs par clé n'est pas nécessaire.

HBase possède son propre référentiel de métadonnées et une disposition de stockage en colonnes.Il est possible de créer des requêtes HiveQL sur des tables HBase, permettant à HBase de tirer parti de la grammaire et de l'analyseur, du planificateur de requêtes et du moteur d'exécution de requêtes de Hive.Voir http://wiki.apache.org/hadoop/Hive/HBaseIntegration pour plus de détails.

Hive est un outil d'analyse.Tout comme Pig, il a été conçu pour le traitement par lots ad hoc de quantités potentiellement énormes de données en tirant parti de la réduction de carte.Pensez aux téraoctets.Imaginez essayer de faire cela dans une base de données relationnelle...

HBase est un magasin de valeurs clés basé sur des colonnes basé sur BigTable.Vous ne pouvez pas effectuer de requêtes en soi, bien que vous puissiez exécuter des tâches de réduction de carte sur HBase.Son principal cas d'utilisation consiste à récupérer des lignes par clé ou à analyser des plages de lignes.Une fonctionnalité majeure est de pouvoir avoir la localité des données lors de l'analyse de plages de clés de ligne pour une « famille » de colonnes.

À mon humble connaissance, Hive est plus comparable à Pig.Hive est de type SQL et Pig est basé sur un script.Hive semble être plus compliqué avec les moteurs d'optimisation et d'exécution des requêtes et nécessite que l'utilisateur final spécifie les paramètres de schéma (partition, etc.).Les deux sont destinés à traiter des fichiers texte, ou séquenceFiles.

HBase est destiné au stockage et à la récupération de données de valeurs clés... vous pouvez analyser ou filtrer ces paires de valeurs clés (lignes).Vous ne pouvez pas effectuer de requêtes sur les lignes (clé, valeur).

Depuis les versions les plus récentes de Hive, beaucoup de choses ont changé et nécessitent une petite mise à jour car Hive et HBase sont désormais intégrés.Cela signifie que Hive peut être utilisé comme couche de requête pour une banque de données HBase.Désormais, si les gens recherchent des interfaces HBase alternatives, Pig offre également un très bon moyen de chargement et stockage des données HBase.De plus, il semble que Cloudera Impala peut offrir des performances substantielles aux requêtes basées sur Hive au-dessus de HBase.Ils revendiquent des requêtes jusqu'à 45 fois plus rapides par rapport aux configurations Hive traditionnelles.

Hive et HBase sont utilisés pour différents but.

Ruche:

Avantages:

  1. Ruche Apache est un infrastructure d'entrepôt de données construit au-dessus de Hadoop.
  2. Il permet d'interroger les données stockées sur HDFS pour analyse via HQL, un Langage de type SQL, qui sera converti en série de Carte Réduire les tâches
  3. Il ne fonctionne que processus par lots sur Hadoop.
  4. c'est Conforme à JDBC, il s'intègre également aux outils SQL existants
  5. Supports de ruche cloisons
  6. Elle supporte interrogation analytique des données collectés sur une période de temps

Les inconvénients:

  1. Il ne prend actuellement pas en charge les instructions de mise à jour
  2. Il doit être fourni avec un schéma prédéfini pour mapper les fichiers et répertoires en colonnes

Base H :

Avantages:

  1. Un système évolutif, base de données distribuée qui prend en charge le stockage de données structurées pour les grandes tables
  2. Il offre accès aléatoire en lecture/écriture en temps réel à votre Big Data.Les opérations HBase s'exécutent en temps réel sur sa base de données plutôt que sur les tâches MapReduce
  3. Elle supporte cloisons aux tableaux, et les tableaux sont ensuite divisés en familles de colonnes
  4. Échelle horizontale avec une énorme quantité de données en utilisant Hadoop
  5. Fournit un accès aux données basé sur une clé lors du stockage ou de la récupération.Il prend en charge l'ajout ou la mise à jour Lignes.
  6. Les soutiens versionnage de données.

Les inconvénients:

  1. Les requêtes HBase sont écrites dans un langage personnalisé qui doit être appris
  2. HBase n'est pas entièrement conforme à ACID
  3. Il ne peut pas être utilisé avec des modèles d'accès compliqués (tels que les jointures)
  4. Ce n'est pas non plus un substitut complet à HDFS lors de l'exécution de MapReduce par lots volumineux.

Résumé:

Hive peut être utilisé pour les requêtes analytiques tandis que HBase pour les requêtes en temps réel.Les données peuvent même être lues et écrites de Hive vers HBase et inversement.

Pour comparer Hive avec Hbase, j'aimerais rappeler la définition ci-dessous :

Une base de données conçue pour gérer les transactions n'est pas conçue pour gérer l'analyse.Il n’est pas structuré pour bien faire des analyses.Un entrepôt de données, en revanche, est structuré pour rendre l'analyse rapide et facile.

Hive est une infrastructure d'entrepôt de données construite sur Hadoop qui convient aux tâches ETL de longue durée.Hbase est une base de données conçue pour gérer des transactions en temps réel

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top