Qu'est-ce que Hive dans Hadoop ? L'histoire et ses composantes

Publié: 2021-10-07

Apache Hive est un système d'entreposage open source qui repose sur Hadoop. Hive est utilisé pour interroger et analyser des ensembles de données volumineux stockés dans Hadoop. Il fonctionne en traitant à la fois des données structurées et semi-structurées.

A travers cet article, parlons en détail de Hive dans Hadoop, son histoire, son importance, l'architecture de Hive, quelques fonctionnalités clés, quelques limitations, et plus encore !

Table des matières

Qu'est-ce que la ruche ?

Apache Hive est simplement un logiciel d'entrepôt de données construit en utilisant Hadoop comme base. Avant Apache Hive, les ingénieurs Big Data devaient écrire des travaux complexes de réduction de carte pour effectuer des tâches d'interrogation. Avec Hive, en revanche, les choses ont été considérablement réduites car les ingénieurs n'ont plus qu'à connaître SQL.

Hive fonctionne sur un langage connu sous le nom de HiveQL (similaire à SQL), ce qui facilite la tâche des ingénieurs qui ont une connaissance pratique de SQL. HiveQL traduit automatiquement vos requêtes SQL en travaux de réduction de carte que Hadoop peut exécuter.

Ce faisant, Apache présente le concept d'abstraction dans le fonctionnement de Hadoop et permet aux experts en données de traiter des ensembles de données complexes sans apprendre le langage de programmation Java pour travailler avec Hive. Apache Hive fonctionne sur votre poste de travail et convertit les requêtes SQL en tâches de réduction de carte à exécuter sur le cluster Hadoop. Hive classe toutes vos données dans des tableaux, fournissant ainsi une structure à toutes les données présentes dans HDFS.

Histoire d'Apache Hive

L'équipe d'infrastructure de données a présenté Apache Hive sur Facebook. C'est l'une des technologies utilisées de manière proactive sur Facebook à de nombreuses fins internes. Au fil des ans, Apache Hive a exécuté des milliers de tâches sur le cluster avec des centaines d'utilisateurs pour une gamme d'applications.

Le cluster Hive-Hadoop de Facebook stocke plus de 3 Po de données brutes. Il peut charger quotidiennement 15 To de données en temps réel. À partir de là, Apache Hive a grandi encore plus dans ses cas d'utilisation, et aujourd'hui, il est utilisé par des géants comme IBM, Yahoo, Amazon, FINRA, Netflix, etc.

Obtenez votre certification en science des données en ligne auprès des meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Pourquoi avoir besoin d'Apache Hive ?

Avant de proposer Apache Hive, Facebook était aux prises avec de nombreux défis, tels que la taille sans cesse croissante des données à analyser et l'incohérence totale de ce vaste ensemble de données. Ces défis ont rendu difficile pour Facebook la gestion transparente de ses tâches gourmandes en données. Les structures traditionnelles basées sur RDBMS n'étaient pas suffisantes pour contrôler la pression toujours croissante.

Facebook a d'abord introduit map-reduce pour surmonter ces défis, mais l'a ensuite simplifié en proposant Apache Hive, qui fonctionne sur HiveQL.

Finalement, Apache Hive est apparu comme le sauveur indispensable et a aidé Facebook à surmonter les différents défis. Maintenant, en utilisant Apache Hive, Facebook a pu réaliser ce qui suit :

  • Évolution et flexibilité du schéma.
  • Partitionnement et bucketing des tables.
  • Définition des tables Hive directement dans HDFS.
  • Disponibilité des pilotes ODBC/JDBC.

Dans l'ensemble, Apache Hive a aidé les développeurs à gagner beaucoup de temps qui, autrement, serait consacré à l'écriture de tâches complexes de réduction de carte. Hive simplifie la synthèse, l'analyse, l'interrogation et l'exploration des données.

Ne dépendant que de SQL, Apache Hive est un framework rapide et évolutif et hautement extensible. Si vous comprenez les requêtes de base en utilisant SQL, vous pourrez travailler avec Apache Hive en un rien de temps ! Il offre également un accès aux fichiers sur différents magasins de données comme HBase et HDFS.

L'architecture d'Apache Hive

Maintenant que vous comprenez l'importance et l'émergence d'Apache Hive, examinons les principaux composants d'Apache Hive. L'architecture d'Apache Hive comprend :

1. Métastore

Ceci est utilisé pour stocker les métadonnées de chacune des tables. Les métadonnées se composent généralement de l'emplacement et du schéma. Le métastore comprend également les métadonnées de partition, qui aident les ingénieurs à suivre la progression des différents ensembles de données qui ont été distribués sur les clusters. Les données stockées ici sont au format RDBMS traditionnel.

2. Conducteur

Le pilote dans Apache Hive est comme un contrôleur chargé de recevoir les instructions HiveQL. Ensuite, il lance l'exécution de ces instructions en créant différentes sessions. Le conducteur est également responsable du suivi et de la gestion du cycle de vie de la mise en œuvre et de son avancement en cours de route. Les pilotes contiennent toutes les métadonnées importantes qui sont générées lorsqu'une instruction HiveQL est exécutée. Il agit également comme un point de collecte des données obtenues après l'opération de réduction de carte.

3. Compilateur

Le compilateur est utilisé pour compiler les requêtes HiveQL. Il convertit les requêtes générées par l'utilisateur en un plan d'exécution infaillible qui contient toutes les tâches à effectuer. Le plan comprend également toutes les étapes et procédures nécessaires pour suivre map-reduce afin d'obtenir la sortie requise. Le compilateur Hive convertit la requête d'entrée utilisateur en AST (arbre de syntaxe abstraite) pour vérifier les erreurs de compilation ou les problèmes de compatibilité. L'AST est transformé en un graphe acyclique dirigé (DAG) lorsqu'aucun des problèmes n'est rencontré.

4. Optimiseur

L'optimiseur effectue toutes les transformations sur le plan d'exécution requises pour atteindre le DAG optimisé. Il le fait en agrégeant toutes les transformations ensemble, comme la conversion d'un tableau de jointures individuelles en une seule jointure - pour améliorer les performances. De plus, l'optimiseur peut diviser différentes tâches en appliquant une transformation sur les données avant que l'opération réduite ne soit effectuée - encore une fois, pour améliorer les performances globales.

5. Exécuteur testamentaire –

Une fois qu'Apache Hive a effectué les tâches de compilation et d'optimisation, l'exécuteur effectue les exécutions finales. Il s'occupe de canaliser les tâches et de les mener à bien.

6. CLI, interface utilisateur et Thrift Server

L'interface de ligne de commande (CLI) est utilisée pour fournir à l'utilisateur externe une interface utilisateur permettant d'interagir avec les différentes fonctionnalités d'Apache Hive. CLI est ce qui constitue l'interface utilisateur de Hive pour les utilisateurs finaux. D'autre part, le serveur Thrift permet aux clients externes d'interagir avec Hive sur un réseau, similaire aux protocoles ODBC ou JDBC.

Fonctionnalités principales d'Apache Hive

Comme mentionné précédemment, Apache Hive a apporté un changement indispensable dans la façon dont les ingénieurs travaillaient sur les tâches de données. Java n'était plus le langage de prédilection et les développeurs pouvaient travailler simplement en utilisant SQL. En dehors de cela, il existe également plusieurs autres fonctionnalités essentielles de Hive, telles que :

  • Apache Hive propose une synthèse, une analyse et une interrogation des données de manière beaucoup plus simplifiée.
  • Hive prend en charge les tables internes et externes, ce qui permet de travailler avec des données externes sans les importer dans le H DFS.
  • Apache Hive fonctionne parfaitement bien pour l'exigence d'interface de bas niveau de Hadoop.
  • En prenant en charge le partitionnement des données au niveau des tables, Apache Hive contribue à améliorer les performances globales.
  • Il dispose d'un optimiseur basé sur des règles pour optimiser différents plans logiques.
  • Il fonctionne sur HiveQL, un langage similaire à SQL, ce qui signifie que les développeurs n'ont pas besoin de maîtriser un autre langage pour travailler avec de grands ensembles de données.
  • Interroger dans Hive est extrêmement simple, similaire à SQL.
  • Nous pouvons également exécuter des requêtes ad hoc pour l'analyse des données à l'aide de Hive.

Limitation d'Apache Hive

Étant donné que le monde de la science des données est relativement nouveau et en constante évolution, même les meilleurs outils disponibles sur le marché ont certaines limites. Résoudre ces limitations est ce qui nous donnera les prochains meilleurs outils. Voici quelques limitations de l'utilisation d'Apache Hive à garder à l'esprit :

  • Hive n'offre pas de mises à jour au niveau des lignes ni d'interrogation en temps réel.
  • Apache Hive offre une latence acceptable pour l'interactivité.
  • Ce n'est pas le meilleur pour travailler avec des transactions en ligne.
  • La latence des requêtes Hive est généralement supérieure à la moyenne.

En conclusion

Apache Hive a apporté des améliorations drastiques et étonnantes dans la façon dont les ingénieurs de données travaillent sur de grands ensembles de données. De plus, en éliminant complètement le besoin du langage de programmation Java, Apache Hive a apporté un confort familier aux ingénieurs de données. Aujourd'hui, vous pouvez travailler sans problème avec Apache Hive si vous avez les connaissances fondamentales des requêtes SQL.

Comme nous l'avons mentionné précédemment, la science des données est un domaine dynamique et en constante évolution. Nous sommes sûrs que les années à venir apporteront de nouveaux outils et frameworks pour simplifier encore plus les choses. Si vous êtes un passionné de données et que vous souhaitez apprendre tous les outils du métier de la science des données, c'est le moment idéal pour vous familiariser avec les outils Big Data comme Hive.

Chez upGrad, nous avons encadré et guidé des étudiants du monde entier et aidé des personnes d'horizons différents à s'implanter solidement dans l'industrie de la science des données. Nos enseignants experts, nos partenariats avec l'industrie, notre aide au placement et notre solide réseau d'anciens élèves garantissent que vous n'êtes jamais seul dans ce voyage. Alors jetez un coup d'œil à notre programme Executive PG en science des données et inscrivez-vous à celui qui vous convient - nous nous occupons du reste !

Qu'est-ce qu'Apache Hive dans Hadoop ?

Apache Hive est un cadre ou un système utilisé pour stocker, interroger et analyser de grands ensembles de données. Apache Hive a été introduit par Facebook pour améliorer ses opérations internes et fait depuis lors partie intégrante du spectre Data Science.

Dois-je apprendre un langage particulier pour travailler avec Apache Hive dans Hadoop ?

Non! Une simple connaissance pratique de SQL vous suffira pour démarrer avec Apache Hive !

À quoi sert Apache Hive ?

Apache Hive est généralement utilisé pour OLAP (traitement par lots) et n'est généralement pas utilisé pour OLTP en raison des opérations en temps réel sur la base de données.