Maison  >  Article  >  Quels services les composants de la ruche fournissent-ils ?

Quels services les composants de la ruche fournissent-ils ?

青灯夜游
青灯夜游original
2022-11-18 11:57:002482parcourir

Le composant Hive peut fournir des services : 1. Convertir les instructions SQL en code mapreduce ; 2. Les données peuvent être stockées en utilisant HDFS pour le stockage ; 3. Les données peuvent être calculées en utilisant MapReduce ; hive est un outil d'entrepôt de données basé sur Hadoop, utilisé pour l'extraction, la transformation et le chargement de données ; l'outil d'entrepôt de données hive peut mapper des fichiers de données structurées dans une table de base de données et fournit des fonctions de requête SQL, qui peuvent convertir des instructions SQL en tâches MapReduce à exécuter. .

Quels services les composants de la ruche fournissent-ils ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, ordinateur Dell G3.

Lors de la création d'un entrepôt de données, le composant Hive joue un rôle très clé. Nous savons que Hive est un outil d'entrepôt de données important basé sur Hadoop, mais la manière de l'appliquer nécessite une exploration plus approfondie.


Qu'est-ce que Hive

hive est un outil d'entrepôt de données basé sur Hadoop, qui est utilisé pour extraire, transformer et charger des données. C'est une sorte de données qui peut stocker, interroger et analyser des données à grande échelle. stocké dans le mécanisme Hadoop. L'outil d'entrepôt de données Hive peut mapper des fichiers de données structurées dans une table de base de données et fournit des fonctions de requête SQL, qui peuvent convertir les instructions SQL en tâches MapReduce pour exécution. L'avantage de Hive est qu'il a un faible coût d'apprentissage et peut implémenter des statistiques MapReduce rapides via des instructions de type SQL, ce qui simplifie MapReduce sans avoir à développer une application MapReduce spécialisée. hive est très approprié pour l'analyse statistique des entrepôts de données

À quoi sert Hive ? 1. Convertir les instructions SQL en code mapreduce 2. Peut stocker des données à l'aide de HDFS

3. Peut effectuer des calculs sur les données Quels sont les avantages de utiliser MapReduce pour les calculs ? Les capacités de calcul/d'extension sont conçues ensemble (MR comme moteur de calcul, HDFS comme système de stockage)


Généralement, il n'est pas nécessaire de redémarrer le service. Hive peut étendre librement l'échelle du cluster.

(3) Fournir une gestion unifiée des métadonnées

(4) Évolutivité : Hive prend en charge les fonctions définies par l'utilisateur, les utilisateurs peuvent implémenter leurs propres fonctions en fonction de leurs propres besoins(5) Tolérance aux pannes : bonne tolérance aux pannes, nœud en cas de problème se produit, le SQL peut toujours être exécuté

b. Inconvénients de Hive

(1) la capacité d'expression HQL de Hive est limitée

1) Les algorithmes itératifs ne peuvent pas être exprimés, tels que le pagerank

2) Les données l'exploitation minière, telle que kmeans

(2) l'efficacité de la ruche est relativement faible

1) Les tâches mapreduce générées automatiquement par la ruche ne sont généralement pas assez intelligentes

  • 2) le réglage de la ruche est difficile et la granularité est grossière

  • 3)hive a une mauvaise contrôlabilité

(3)Hive ne prend pas en charge les choses. Principalement utilisé pour OLAP (Online Analytical Processing)

  • 1) Les données traitées par Hive sont stockées dans HDFS
  • 2) L'implémentation par défaut des données d'analyse sous-jacentes de Hive est MapReduce
  • 3) Le l'exécuteur fonctionne sur Yarn Résumé de ce qui précède

 : C'est équivalent au rôle d'un client pour hadoop.

Quels services les composants de la ruche fournissent-ils ?

Pourquoi utiliser Hive

(1) Comparaison entre Hive et la base de données traditionnelle

Hive est utilisé pour l'analyse de données hors ligne de données massives. Hive a l'apparence d'une base de données SQL, mais les scénarios d'application sont complètement différents. Hive ne convient que pour l'analyse statistique de données batch.

(2) Avantages de HiveHive utilise HDFS pour stocker des données et MapReduce pour interroger et analyser les données. Parce que l'utilisation directe de Hadoop MapReduce pour traiter les données sera confrontée au problème des coûts élevés de formation du personnel et qu'il est trop difficile de développer une logique de requête complexe à l'aide de MapReduce. Avec Hive, l'interface d'exploitation adopte une syntaxe de type SQL, qui offre non seulement des capacités de développement rapide, mais évite également d'écrire MapReduce, réduisant ainsi les coûts d'apprentissage des développeurs et rendant l'extension des fonctions plus pratique.

Quel problème Hive résout-il ?

Hive résout la fonction de requête du Big Data, afin que les personnes qui ne peuvent pas écrire MR puissent également utiliser MR. Son essence est de convertir HQL en MR. écrire MR est inefficace et douloureux L'émergence de Hive a apporté des raccourcis et de bonnes nouvelles aux frères JAVAEE.

Quels services les composants de la ruche fournissent-ils ?Principe de l'architecture Hive

1. Interface utilisateur : Client

CLI (ruche d'accès), JDBC/ODBC (ruche d'accès Java), WEBUI (ruche d'accès au navigateur)2. Métadonnées : Metastore

Les métadonnées incluent : le nom de la table, la base de données à laquelle appartient la table (la valeur par défaut est la valeur par défaut), le propriétaire de la table, le champ de colonne/partition, le type de table

(qu'il s'agisse d'une table externe), le répertoire où se trouvent les données de la table, etc. .;

données de métadonnées : Metastore

les métadonnées comprennent : le nom de la table, la base de données à laquelle la table appartient (la valeur par défaut est la valeur par défaut), le propriétaire de la table, le champ de colonne/partition, le type de table

(qu'il s'agisse d'une table externe), répertoire où se trouvent les données de la table, etc. ;

Par défaut, elles sont stockées dans la base de données Derby intégrée. Il est recommandé d'utiliser MySQL pour stocker Metastore.

3. Hadoop

utilise HDFS pour le stockage et MapReduce pour le calcul.

4. Pilote : Driver

(1) Analyseur (SQL Parser) : Convertir la chaîne SQL en arbre de syntaxe abstraite AST Cette étape est généralement effectuée à l'aide d'une bibliothèque d'outils tierce, telle que antlr, pour effectuer une analyse syntaxique sur AST, telle que la table If. il existe, si le champ existe, si la sémantique SQL est incorrecte.

(2) Compilateur (Plan physique) : Compilez AST pour générer un plan d'exécution logique.

(3) Optimiseur (Query Optimizer) : Optimisez le plan d'exécution logique.

(4) Exécution : convertissez le plan d'exécution logique en un plan physique pouvant être exécuté. Pour Hive, c'est MR/Spark.

Hive est construit sur Hadoop et toutes les données Hive sont stockées dans HDFS. La base de données peut enregistrer des données dans un périphérique bloc ou un système de fichiers local.

Étant donné que Hive est conçu pour les applications d'entrepôt de données, le contenu de l'entrepôt de données nécessite plus de lecture et moins d'écriture. Par conséquent, il n'est pas recommandé de réécrire les données dans Hive

Quels services les composants de la ruche fournissent-ils ? Toutes les données sont déterminées lors du chargement. Les données de la base de données doivent généralement être modifiées fréquemment, vous pouvez donc utiliser INSERT INTO... VALUES pour ajouter des données et UPDATE... SET pour modifier les données.

Comparaison entre Hive et la base de données

Étant donné que Hive utilise un langage de requête de type SQL HQL (Hive Query Language), il est facile de comprendre Hive en tant que base de données. En fait, d’un point de vue structurel, mis à part le fait d’avoir des langages de requête similaires, Hive et la base de données n’ont rien en commun. Cette section expliquera les différences entre Hive et les bases de données sous de nombreux aspects. Les bases de données peuvent être utilisées dans les applications en ligne, mais Hive est conçu pour les entrepôts de données. Sachant cela vous aidera à comprendre les caractéristiques de Hive du point de vue des applications.

1. Langage de requête

Étant donné que SQL est largement utilisé dans les entrepôts de données, le langage de requête de type SQL HQL est conçu spécifiquement pour les caractéristiques de Hive. Les développeurs familiarisés avec le développement SQL peuvent facilement utiliser Hive pour le développement.

2. Emplacement de stockage des données Hive est construit sur Hadoop et toutes les données Hive sont stockées dans HDFS. La base de données peut stocker des données dans un périphérique bloc ou un système de fichiers local.

3. Mise à jour des données : Puisque Hive est conçu pour les applications d'entrepôt de données, le contenu de l'entrepôt de données nécessite plus de lecture et moins d'écriture. Par conséquent, il n'est pas recommandé de réécrire les données dans Hive. Toutes les données sont déterminées lors du chargement. Les données de la base de données doivent généralement être modifiées fréquemment, vous pouvez donc utiliser INSERT INTO... VALUES pour ajouter des données et UPDATE... SET pour modifier les données.

4. Index : Hive n'effectue aucun traitement sur les données pendant le processus de chargement des données, ni même n'analyse les données, donc certaines clés des données ne sont pas indexées. Lorsque Hive souhaite accéder à des valeurs spécifiques dans les données qui remplissent les conditions, il doit analyser par force brute l'intégralité des données, de sorte que la latence d'accès est élevée. Grâce à l'introduction de MapReduce, Hive peut accéder aux données en parallèle, de sorte que même sans index, Hive peut toujours présenter des avantages pour accéder à de grandes quantités de données. Dans une base de données, un index est généralement créé sur une ou plusieurs colonnes, de sorte que la base de données peut avoir une efficacité élevée et une faible latence pour accéder à une petite quantité de données avec des conditions spécifiques. En raison de la latence élevée de l’accès aux données, Hive n’est pas adapté aux requêtes de données en ligne.

5. Exécution : L'exécution de la plupart des requêtes dans Hive est implémentée via MapReduce fourni par Hadoop. La base de données possède généralement son propre moteur d'exécution.

6. Délai d'exécution : lorsque Hive interroge des données, puisqu'il n'y a pas d'index, la table entière doit être analysée, le délai est donc élevé. Un autre facteur qui contribue à la latence élevée d’exécution de Hive est le framework MapReduce. Étant donné que MapReduce lui-même a une latence élevée, il y aura également une latence élevée lors de l'utilisation de MapReduce pour exécuter des requêtes Hive. En revanche, la latence d’exécution de la base de données est faible. Bien entendu, ce faible est conditionnel, c'est-à-dire que l'échelle des données est petite. Lorsque l'échelle des données est suffisamment grande pour dépasser les capacités de traitement de la base de données, le calcul parallèle de Hive peut évidemment montrer ses avantages.

7. Évolutivité : Puisque Hive est construit sur Hadoop, l'évolutivité de Hive est cohérente avec l'évolutivité de Hadoop (le plus grand cluster Hadoop au monde est chez Yahoo !, avec une échelle de 2009) Environ 4000 nœuds). En raison des restrictions strictes de la sémantique ACID, la base de données comporte des lignes d'extension très limitées. Actuellement, Oracle, la base de données parallèle la plus avancée, a une évolutivité théorique d'environ 100 unités seulement.

8. Échelle des données : étant donné que Hive est construit sur un cluster et peut utiliser MapReduce pour le calcul parallèle, il peut prendre en charge des données à grande échelle ; en conséquence, la base de données peut prendre en charge une échelle de données plus petite.

Pour plus de connaissances liées à la programmation, veuillez visiter : Enseignement de la programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn