Hive - Introduction

Le terme `` Big Data '' est utilisé pour les collections de grands ensembles de données comprenant un volume énorme, une vitesse élevée et une variété de données qui augmentent de jour en jour. En utilisant les systèmes de gestion de données traditionnels, il est difficile de traiter le Big Data. Par conséquent, l'Apache Software Foundation a introduit un cadre appelé Hadoop pour résoudre les problèmes de gestion et de traitement des Big Data.

Hadoop

Hadoop est un framework open-source pour stocker et traiter le Big Data dans un environnement distribué. Il contient deux modules, l'un est MapReduce et l'autre est Hadoop Distributed File System (HDFS).

  • MapReduce: Il s'agit d'un modèle de programmation parallèle pour le traitement de grandes quantités de données structurées, semi-structurées et non structurées sur de grands groupes de matériel de base.

  • HDFS:Le système de fichiers distribués Hadoop fait partie du framework Hadoop, utilisé pour stocker et traiter les ensembles de données. Il fournit un système de fichiers tolérant aux pannes à exécuter sur du matériel standard.

L'écosystème Hadoop contient différents sous-projets (outils) tels que Sqoop, Pig et Hive qui sont utilisés pour aider les modules Hadoop.

  • Sqoop: Il est utilisé pour importer et exporter des données depuis et vers HDFS et RDBMS.

  • Pig: Il s'agit d'une plateforme de langage procédural utilisée pour développer un script pour les opérations MapReduce.

  • Hive: Il s'agit d'une plateforme utilisée pour développer des scripts de type SQL pour effectuer des opérations MapReduce.

Note: Il existe différentes manières d'exécuter des opérations MapReduce:

  • L'approche traditionnelle utilisant le programme Java MapReduce pour les données structurées, semi-structurées et non structurées.
  • L'approche de script pour MapReduce pour traiter des données structurées et semi-structurées à l'aide de Pig.
  • Le langage de requête Hive (HiveQL ou HQL) pour MapReduce pour traiter des données structurées à l'aide de Hive.

Qu'est-ce que la ruche

Hive est un outil d'infrastructure d'entrepôt de données pour traiter des données structurées dans Hadoop. Il réside au-dessus de Hadoop pour résumer le Big Data et facilite les requêtes et l'analyse.

Initialement, Hive a été développé par Facebook, plus tard, la Apache Software Foundation l'a repris et l'a développé en tant qu'open source sous le nom d'Apache Hive. Il est utilisé par différentes entreprises. Par exemple, Amazon l'utilise dans Amazon Elastic MapReduce.

Hive n'est pas

  • Une base de données relationnelle
  • Une conception pour le traitement des transactions en ligne (OLTP)
  • Un langage pour les requêtes en temps réel et les mises à jour au niveau des lignes

Caractéristiques de Hive

  • Il stocke le schéma dans une base de données et les données traitées dans HDFS.
  • Il est conçu pour OLAP.
  • Il fournit un langage de type SQL pour les requêtes appelé HiveQL ou HQL.
  • Il est familier, rapide, évolutif et extensible.

Architecture de la ruche

Le diagramme de composants suivant décrit l'architecture de Hive:

Ce diagramme de composants contient différentes unités. Le tableau suivant décrit chaque unité:

Nom de l'unité Opération
Interface utilisateur Hive est un logiciel d'infrastructure d'entrepôt de données qui peut créer une interaction entre l'utilisateur et HDFS. Les interfaces utilisateur prises en charge par Hive sont l'interface utilisateur Web Hive, la ligne de commande Hive et Hive HD Insight (dans le serveur Windows).
Meta Store Hive choisit les serveurs de base de données respectifs pour stocker le schéma ou les métadonnées des tables, bases de données, colonnes d'une table, leurs types de données et le mappage HDFS.
Moteur de processus HiveQL HiveQL est similaire à SQL pour interroger les informations de schéma sur le Metastore. C'est l'un des remplacements de l'approche traditionnelle du programme MapReduce. Au lieu d'écrire le programme MapReduce en Java, nous pouvons écrire une requête pour le travail MapReduce et le traiter.
Moteur d'exécution La partie conjointe de HiveQL Process Engine et MapReduce est Hive Execution Engine. Le moteur d'exécution traite la requête et génère des résultats identiques aux résultats MapReduce. Il utilise la saveur de MapReduce.
HDFS ou HBASE Le système de fichiers distribué Hadoop ou HBASE sont les techniques de stockage de données pour stocker les données dans le système de fichiers.

Fonctionnement de la ruche

Le diagramme suivant illustre le flux de travail entre Hive et Hadoop.

Le tableau suivant définit comment Hive interagit avec le framework Hadoop:

Étape No. Opération
1 Execute Query

L'interface Hive telle que la ligne de commande ou l'interface utilisateur Web envoie une requête au pilote (tout pilote de base de données tel que JDBC, ODBC, etc.) à exécuter.

2 Get Plan

Le pilote prend l'aide du compilateur de requêtes qui analyse la requête pour vérifier la syntaxe et le plan de requête ou l'exigence de la requête.

3 Get Metadata

Le compilateur envoie une demande de métadonnées à Metastore (n'importe quelle base de données).

4 Send Metadata

Metastore envoie des métadonnées en réponse au compilateur.

5 Send Plan

Le compilateur vérifie l'exigence et renvoie le plan au pilote. Jusqu'ici, l'analyse et la compilation d'une requête sont terminées.

6 Execute Plan

Le pilote envoie le plan d'exécution au moteur d'exécution.

sept Execute Job

En interne, le processus d'exécution du travail est un travail MapReduce. Le moteur d'exécution envoie le travail à JobTracker, qui se trouve dans le nœud Nom et affecte ce travail à TaskTracker, qui se trouve dans le nœud Données. Ici, la requête exécute le travail MapReduce.

7,1 Metadata Ops

Pendant l'exécution, le moteur d'exécution peut exécuter des opérations de métadonnées avec Metastore.

8 Fetch Result

Le moteur d'exécution reçoit les résultats des nœuds de données.

9 Send Results

Le moteur d'exécution envoie ces valeurs résultantes au pilote.

dix Send Results

Le pilote envoie les résultats aux interfaces Hive.