Différence entre Hive et Impala

Hive est un projet de logiciel d'entrepôt de données construit sur APACHE HADOOP développé par l'équipe de Jeff chez Facebook avec une version stable actuelle de 2.3.0. Il est utilisé pour résumer le Big Data et facilite les requêtes et l'analyse. Apache Hive est une norme efficace pour SQL-in Hadoop. Impala est un moteur de requête SQL de traitement parallèle qui s'exécute sur Apache Hadoop et sert à traiter les données stockées dans HBase (base de données Hadoop) et Hadoop Distributed File System. Impala est un produit open source pour le moteur de requête SQL de traitement parallèle (MPP) pour les données stockées dans un cluster système local fonctionnant sur Apache Hadoop. Apache Hive et Impala sont tous deux des éléments clés du système Hadoop.

Étudions donc en détail Hive et Impala:

RUCHE

  • Apache Hive aide à analyser l'énorme ensemble de données stocké dans le système de fichiers Hadoop (HDFS) et d'autres systèmes de fichiers compatibles.
  • Hive QL - Pour interroger les données stockées dans le cluster Hadoop .
  • Exploite l' évolutivité de Hadoop par la traduction .
  • Hive n'est PAS une base de données complète .
  • Il ne fournit pas de mises à jour au niveau des enregistrements .
  • Hadoop est un système orienté par lots .
  • Les requêtes Hive ont une latence élevée en raison de MapReduce .
  • Hive ne fournit pas de fonctionnalités proches de OLAP .
  • Idéal pour les applications d'entrepôt de données .
  • Exécution de requête via MapReduce .
  • le langage de requête peut être utilisé avec des fonctions scalaires personnalisées (UDF), des agrégations (UDAF) et des fonctions de table (UDTF) .
  • Hive fournit également l'indexation pour accélérer, le type d'index, y compris le compactage et l'index bitmap à partir de 0, 10, d'autres types d'index sont prévus.
  • Les types de stockage pris en charge par Hive sont RCfile, HBase, ORC et Texte brut .
  • Requêtes de type SQL (Hive QL), qui sont implicitement converties en travaux MapReduce ou Tez ou Spark .
  • Par défaut, Hive stocke les métadonnées dans une base de données Apache Derby intégrée .

IMPALA

  • Impala est un moteur de requête qui s'exécute sur Hadoop . Sa distribution publique de test bêta a été annoncée en octobre 2012 et est devenue généralement disponible en mai 2013.
  • Il prend en charge le stockage HDFS Apache HBase et Amazon S3 .
  • Lit les formats de fichiers Hadoop, y compris les fichiers texte, Parquet, Avro, RCFile, LZO et Sequence .
  • Prend en charge la sécurité Hadoop (authentification Kerberos) .
  • Utilise les métadonnées, le pilote ODBC et la syntaxe SQL d'Apache Hive .
  • Il prend en charge plusieurs codecs de compression:

(a) Snappy (recommandé pour son équilibre efficace entre le taux de compression et la vitesse de décompression),

(b) Gzip (recommandé pour obtenir le niveau de compression le plus élevé),

(c) Dégonfler (non pris en charge pour les fichiers texte), Bzip2, LZO (pour les fichiers texte uniquement);

  • Il vous permet d'interroger sur les structures imbriquées, y compris les cartes, les structures et les tableaux.
  • Il permet des requêtes simultanées multi-utilisateurs et permet également le contrôle d'admission sur la base de la priorisation et de la mise en file d'attente des requêtes.

Comparaisons tête à tête entre Hive vs Impala (infographie)

Ci-dessous est la comparaison du Top 20 entre Hive vs Impala

Différence clé entre Hive et Impala

Les différences entre Hive et Impala sont expliquées dans les points présentés ci-dessous:

  • Hive est développé par l'équipe de Jeff sur Facebook, mais Impala est développé par Apache Software Foundation .
  • Hive prend en charge le format de fichier au format ORC (Rowed Row) avec compression Zlib mais Impala prend en charge le format Parquet avec compression instantanée .
  • Hive est écrit en Java mais Impala est écrit en C ++.
  • La vitesse de traitement des requêtes dans Hive est lente mais Impala est 6-69 fois plus rapide que Hive .
  • Dans Hive, la latence est élevée, mais dans Impala, la latence est faible .
  • Hive prend en charge le stockage des fichiers RC et ORC, mais le stockage Impala prend en charge Hadoop et Apache HBase .
  • Hive génère une expression de requête au moment de la compilation mais dans Impala, la génération de code pour les «grandes boucles» se produit pendant l'exécution .
  • Hive ne prend pas en charge le traitement parallèle, mais Impala prend en charge le traitement parallèle.
  • Hive prend en charge MapReduce mais Impala ne prend pas en charge MapReduce .
  • Dans Hive, il n'y a pas de fonction de sécurité mais Impala prend en charge l'authentification Kerberos .
  • Dans une mise à niveau de tout projet où la compatibilité et la vitesse sont importantes, Hive est un choix idéal, mais pour un nouveau projet, Impala est le choix idéal .
  • Hive est tolérant aux pannes, mais Impala ne prend pas en charge la tolérance aux pannes .
  • Hive prend en charge les types complexes mais Impala ne prend pas en charge les types complexes .
  • Hive est Hadoop MapReduce basé sur des lots, mais Impala est une base de données MPP .
  • Hive ne prend pas en charge l'informatique interactive mais Impala prend en charge l'informatique interactive .
  • La requête Hive a un problème de «démarrage à froid», mais dans le processus du démon Impala sont démarrés au démarrage lui-même .
  • Le gestionnaire de ressources de la ruche est YARN (Yet Another Resource Negotiator) mais dans Impala, le gestionnaire de ressources est natif * YARN .
  • Les distributions Hive sont toutes des distributions Hadoop, Hortonworks (Tez, LLAP) mais dans la distribution Impala sont Cloudera MapR (* Amazon EMR) .
  • Le public de la ruche est un ingénieur de données, mais le public d'Impala est un analyste de données / scientifique des données.
  • Le débit de la ruche est élevé mais à Impala, le débit est faible .

Tableau de comparaison Hive vs Impala

Numéro de série.Base de comparaisonRucheImpala
1.Développé parFacebookLogiciel Apache
Fondation
2.Format de fichier
  • Fichier de séquence.
  • Fichier texte.
  • Format colonne ORC optimisé avec compression Zlib.
  • Format de fichier RC.
  • Format parquet avec compression rapide.
  • Avro
  • LZO
  • Fichier de séquence.
3.LangueÉcrit en JAVAÉcrit en C ++
4.Vitesse de traitementLa ruche est lenteImpala est rapide
5.LatenceHauteFaible
6.Prise en charge du stockageFichier RC, ORCHadoop, Apache HBase
sept.Conversion de codeGénère une expression de requête au moment de la compilationLa génération de code se produit lors de l'exécution.
8.Prend en charge le traitement parallèleNonOui
9.Prise en charge de MapReduceOuiNon
dix.Sécurité HadoopNonPrend en charge l'authentification Kerberos.
11.UsageIdéal pour la mise à niveau du projetIdéal pour démarrer un nouveau projet.
12.Tolérance de panneHive est tolérant aux pannes.Ne prend pas en charge la tolérance aux pannes.
13.Types complexesHive prend en charge les types complexes.Impala ne prend pas en charge les types complexes.
14.Type de base de donnéesHive est un Hadoop MapReduce basé sur des lots.C'est la base de données MPP
15.Informatique interactiveNe prend pas en charge l'informatique interactive.Prend en charge l'informatique interactive.
16.ExécutionLa requête Hive a un problème avec "Cold Start"Le processus Impala démarre toujours au démarrage des démons.
17.La gestion des ressourcesFILNative * YARN
18.DistributionsHIVE - toutes les distributions Hadoop, Hortonworks (Tez, LLAP)Cloudera MapR,
(* Amazon EMR)
19.PublicIngénieurs de donnéesAnalyste de données / Data Scientists
20.DébitHaut débitFaible débit

Conclusion - Hive vs Impala

Dans cet article, nous avons essayé de montrer que ce sont deux technologies, à savoir Hive et Impala, ainsi que la différence fondamentale entre ces technologies. En termes pratiques, nous pouvons dire que Hive et Impala ne sont pas les concurrents, ils appartiennent tous deux à la même fondation qui est connue sous le nom de MapReduce pour exécuter les requêtes, l'utilisation des deux peut créer la différence. Selon notre besoin, nous pouvons l'utiliser ensemble ou le meilleur selon la compatibilité, le besoin et les performances. Le langage de requête Hive est Hive QL qui est un langage très polyvalent et universel tandis qu'Impala consomme beaucoup de mémoire et ne fonctionne pas bien pour le traitement d'opérations de données lourdes, par exemple les requêtes de jointure. Si dans votre projet, le travail est lié au traitement par lots pour une grande quantité de données, la ruche sera meilleure dans ce cas et si votre travail est lié au processus en temps réel d'une requête ad hoc sur les données, alors Impala sera mieux dans ce cas.

Article recommandé

Ceci a été un guide pour Hive Vs Impala, leur signification, comparaison tête à tête, différences clés, tableau de comparaison et conclusion. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Apache Hive vs Apache Spark SQL - 13 différences étonnantes
  2. Hive VS HUE - Top 6 des comparaisons utiles pour apprendre
  3. Apache Pig vs Apache Hive - 12 principales différences utiles
  4. Hadoop vs Hive - Découvrez les meilleures différences
  5. Utilisation de la fonction ORDER BY dans Hive

Catégorie: