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. .
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.
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
Généralement, il n'est pas nécessaire de redémarrer le service. Hive peut étendre librement l'échelle du cluster.
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 faible1) Les tâches mapreduce générées automatiquement par la ruche ne sont généralement pas assez intelligentes
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.
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.
Principe de l'architecture Hive
1. Interface utilisateur : Client
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 HiveToutes 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.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!