Table des matières[Cacher][Montrer]
Hive est un outil d'analyse de Big Data largement utilisé dans l'entreprise, et c'est un endroit fantastique pour commencer si vous êtes nouveau dans le domaine du Big Data. Cette leçon Apache Hive passe en revue les principes fondamentaux d'Apache Hive, pourquoi une ruche est nécessaire, ses fonctionnalités et tout ce que vous devez savoir.
Commençons par comprendre le framework Hadoop sur lequel Apache Hive est construit.
Apache Hadoop
Apache Hadoop est un logiciel gratuit et open-source plate-forme de stockage et de traitement de grands ensembles de données dont la taille varie de gigaoctets à pétaoctets. Hadoop permet de regrouper de nombreux ordinateurs pour analyser d'énormes ensembles de données en parallèle, plutôt que de nécessiter un seul gros ordinateur pour stocker et analyser les données.
MapReduce et Hadoop Distributed File System sont deux des composants :
- MapReduce – MapReduce est une technique de programmation parallèle permettant de gérer d'énormes volumes de données organisées, semi-structurées et non structurées sur des clusters matériels de base.
- HDFS – HDFS (Hadoop Distributed File System) est un composant du framework Hadoop qui stocke et traite les données. C'est un système de fichiers tolérant aux pannes qui s'exécute sur du matériel standard
Différents sous-projets (outils) de l'écosystème Hadoop, notamment Sqoop, Pig et Hive, sont utilisés pour aider les modules Hadoop.
- Ruche – Hive est un framework pour écrire des scripts de style SQL qui effectuent des calculs MapReduce.
- Cochon – Pig est un langage de programmation procédural qui peut être utilisé pour créer un script pour les processus MapReduce.
- Squoop – Sqoop est un outil d'importation et d'exportation de données entre HDFS et RDBMS.
Qu’est ce qu' Ruche Apache?
Apache Hive est une source ouverte entrepôt de données programme pour lire, écrire et gérer d'énormes ensembles de données stockés directement dans le système de fichiers distribué Apache Hadoop (HDFS) ou d'autres systèmes de stockage de données comme Apache HBase.
Les développeurs SQL peuvent utiliser Hive pour créer des instructions Hive Query Language (HQL) pour la requête et l'analyse de données qui sont comparables aux instructions SQL classiques. Il a été créé pour faciliter la programmation MapReduce en éliminant le besoin d'apprendre et d'écrire du code Java long. Au lieu de cela, vous pouvez écrire vos requêtes en HQL, et Hive construira la carte et réduira les fonctions pour vous.
L'interface de type SQL d'Apache Hive est devenue la référence en matière de recherche ad hoc, de synthèse et d'analyse des données Hadoop. Lorsqu'il est inclus dans le cloud réseaux informatiques, cette solution est particulièrement rentable et évolutive, c'est pourquoi de nombreuses entreprises, dont Netflix et Amazon, continuent de développer et d'améliorer Apache Hive.
HISTOIRE
Pendant leur séjour sur Facebook, Joydeep Sen Sarma et Ashish Thusoo ont co-créé Apache Hive. Ils ont tous deux reconnu que pour tirer le meilleur parti de Hadoop, ils devaient créer des tâches Java Map-Reduce plutôt compliquées. Ils ont reconnu qu'ils ne seraient pas en mesure d'éduquer leurs équipes d'ingénierie et d'analyse en pleine expansion sur les compétences dont elles auraient besoin pour tirer parti de Hadoop dans l'ensemble de l'entreprise. Les ingénieurs et les analystes utilisaient fréquemment SQL comme interface utilisateur.
Alors que SQL pouvait répondre à la majorité des besoins d'analyse, les développeurs avaient également l'intention d'intégrer la programmabilité de Hadoop. Apache Hive est né de ces deux objectifs : un langage déclaratif basé sur SQL qui permettait également aux développeurs d'apporter leurs propres scripts et programmes lorsque SQL ne suffisait pas.
Il a également été développé pour contenir des métadonnées centralisées (basées sur Hadoop) sur tous les ensembles de données de l'entreprise afin de faciliter la construction d'organisations axées sur les données.
Comment fonctionne Apache Hive ?
En un mot, Apache Hive convertit un programme d'entrée écrit dans le langage HiveQL (de type SQL) en une ou plusieurs tâches Java MapReduce, Tez ou Spark. (Tous ces moteurs d'exécution sont compatibles avec Hadoop YARN.) Après cela, Apache Hive organise les données dans des tables pour le système de fichiers distribués Hadoop HDFS) et exécute les tâches sur un cluster pour obtenir une réponse.
Données
Les tables Apache Hive sont organisées de la même manière que les tables d'une base de données relationnelle, avec des unités de données dont la taille varie du plus grand au plus petit. Les bases de données sont constituées de tables divisées en divisions, elles-mêmes divisées en compartiments. HiveQL (Hive Query Language) est utilisé pour accéder aux données, qui peuvent être modifiées ou ajoutées. Les données de table sont sérialisées dans chaque base de données et chaque table possède son propre répertoire HDFS.
Architecture
Nous allons maintenant parler de l'aspect le plus important de Hive Architecture. Les composants d'Apache Hive sont les suivants :
Métastore — Il garde une trace des informations sur chaque table, telles que sa structure et son emplacement. Les métadonnées de la partition sont également incluses dans Hive. Cela permet au pilote de suivre la progression des différents ensembles de données répartis sur le cluster. Les données sont stockées dans un format RDBMS conventionnel. Les métadonnées de la ruche sont extrêmement importantes pour que le pilote conserve une trace des données. Le serveur de sauvegarde duplique régulièrement les données afin de pouvoir les récupérer en cas de perte de données.
Tournevis – Les instructions HiveQL sont reçues par un pilote, qui fonctionne comme un contrôleur. En établissant des sessions, le pilote lance l'exécution de l'instruction. Il garde une trace de la durée de vie et des progrès de l'exécutif. Lors de l'exécution d'une instruction HiveQL, le pilote enregistre les métadonnées requises. Il sert également de point de collecte de données ou de résultats de requête après le processus de réduction.
Compilateur – Il exécute la compilation de la requête HiveQL. La requête est maintenant convertie en plan d'exécution. Les tâches sont répertoriées dans le plan. Il inclut également les étapes que MapReduce doit suivre pour obtenir le résultat tel que traduit par la requête. La requête est convertie en arbre de syntaxe abstraite par le compilateur de Hive (AST). Convertit l'AST en un graphique acyclique dirigé après avoir vérifié la compatibilité et les erreurs de compilation (DAG).
Optimizer – Il optimise le DAG en effectuant différentes modifications sur le plan d'exécution. Il combine des transformations pour une meilleure efficacité, comme la transformation d'un pipeline de jointures en une seule jointure. Pour améliorer la vitesse, l'optimiseur peut diviser les activités, telles que l'application d'une transformation aux données avant d'effectuer une opération de réduction.
Exécuteur – L'exécuteur exécute les tâches lorsque la compilation et l'optimisation sont terminées. Les travaux sont mis en pipeline par l'exécuteur.
CLI, interface utilisateur et Thrift Server – L'interface de ligne de commande (CLI) est une interface utilisateur qui permet à un utilisateur externe de communiquer avec Hive. Le serveur Thrift de Hive, similaire aux protocoles JDBC ou ODBC, permet aux clients externes de communiquer avec Hive via un réseau.
Sécurité
Apache Hive est intégré à la sécurité Hadoop, qui utilise Kerberos pour l'authentification mutuelle client-serveur. Le HDFS dicte les autorisations pour les fichiers nouvellement générés dans Apache Hive, vous permettant d'approuver par l'utilisateur, le groupe et d'autres.
Caractéristiques principales
- Hive prend en charge les tables externes, qui vous permettent de traiter les données sans les stocker dans HDFS.
- Il permet également la segmentation des données au niveau de la table pour augmenter la vitesse.
- Apache Hive répond parfaitement aux besoins d'interface de bas niveau de Hadoop.
- Hive facilite la synthèse, l'interrogation et l'analyse des données.
- HiveQL ne nécessite aucune compétence en programmation ; une simple compréhension des requêtes SQL est suffisante.
- Nous pouvons également utiliser Hive pour effectuer des requêtes ad hoc pour l'analyse des données.
- Il est évolutif, familier et adaptable.
- HiveQL ne nécessite aucune compétence en programmation ; une simple compréhension des requêtes SQL est suffisante.
Avantages
Apache Hive permet des rapports de fin de journée, des évaluations quotidiennes des transactions, des recherches ad hoc et des analyses de données. Les informations complètes fournies par Apache Hive offrent des avantages concurrentiels significatifs et vous permettent de répondre plus facilement aux demandes du marché.
Voici quelques-uns des avantages d'avoir de telles informations facilement disponibles :
- Facilité d’utilisation – Avec son langage de type SQL, l'interrogation des données est simple à comprendre.
- Insertion de données accélérée — Étant donné qu'Apache Hive lit le schéma sans vérifier le type de table ou la définition du schéma, les données n'ont pas besoin d'être lues, analysées et sérialisées sur disque dans le format interne de la base de données. En revanche, dans une base de données classique, les données doivent être validées à chaque ajout.
- Évolutivité, flexibilité et rentabilité supérieures – Étant donné que les données sont stockées dans le HDFS, Apache Hive peut contenir des centaines de pétaoctets de données, ce qui en fait une option beaucoup plus évolutive qu'une base de données classique. Apache Hive, en tant que service Hadoop basé sur le cloud, permet aux clients d'activer et de désactiver rapidement des serveurs virtuels pour répondre à l'évolution des charges de travail.
- Grande capacité de travail – Les grands ensembles de données peuvent traiter jusqu'à 100,000 XNUMX requêtes par heure.
Limites
- En général, les requêtes Apache Hive ont une latence très élevée.
- La prise en charge des sous-requêtes est limitée.
- Les requêtes en temps réel et les modifications au niveau des lignes ne sont pas disponibles dans Apache Hive.
- Les vues matérialisées ne sont pas prises en charge.
- Dans la ruche, les actions de mise à jour et de suppression ne sont pas prises en charge.
- Non destiné à OLTP (processus de transition en ligne).
Premiers pas avec Apache Hive
Apache Hive est un partenaire Hadoop solide qui simplifie et rationalise vos workflows. Pour tirer le meilleur parti d'Apache Hive, une intégration transparente est essentielle. La première étape est d'aller au site .
1. Installation de la ruche à partir d'une version stable
Commencez par télécharger la version stable la plus récente de Hive depuis l'un des miroirs de téléchargement Apache (voir Sorties de la ruche). L'archive doit ensuite être décompressée. Cela créera un sous-dossier appelé hive-xyz (où xyz est le numéro de version) :
Définissez la variable d'environnement HIVE_HOME pour qu'elle pointe vers le répertoire d'installation :
Enfin, ajoutez $HIVE_HOME/bin à votre PATH
:
2. Exécution de la ruche
Hive utilise Hadoop, donc :
- vous devez avoir Hadoop sur votre chemin OU
3. Opération DLL
Création d'une table de ruche
génère une table nommée pokes avec deux colonnes, dont la première est un entier et la seconde une chaîne.
Parcourir les tableaux
Lister toutes les tables
Modification et suppression de tables
Les noms de table peuvent être modifiés et des colonnes peuvent être ajoutées ou remplacées :
Il convient de noter que REPLACE COLUMNS remplace toutes les colonnes existantes en ne modifiant que la structure de la table et non les données. Un SerDe natif doit être utilisé dans la table. REPLACE COLUMNS peut également être utilisé pour supprimer des colonnes du schéma d'une table :
Suppression de tableaux
Il existe de nombreuses opérations et fonctionnalités supplémentaires dans Apache Hive que vous pouvez découvrir en visitant le site Web officiel.
Conclusion
La définition de Hive est une interface de programme de données pour l'interrogation et l'analyse d'énormes ensembles de données construits sur Apache Hadoop. Les professionnels le choisissent par rapport à d'autres programmes, outils et logiciels, car il est principalement conçu pour les données étendues de Hive et est simple à utiliser.
J'espère que ce didacticiel vous aidera à démarrer avec Apache Hive et à rendre vos flux de travail plus efficaces. Faites le nous savoir dans les commentaires.
Soyez sympa! Laissez un commentaire