Tutoriel Hive - Architecture Hive et étude de cas de la NASA



Ce blog didacticiel Hive vous donne une connaissance approfondie de l'architecture Hive et du modèle de données Hive. Il explique également l'étude de cas de la NASA sur Apache Hive.

Tutoriel Apache Hive: Introduction

Hive est un outil rigoureusement utilisé dans tout le secteur pour l'analyse de Big Data et un excellent outil pour démarrer votre avec. Dans ce blog du didacticiel Hive, nous discuterons en profondeur d'Apache Hive. Apache Hive est un outil d'entreposage de données dans le , qui fournit un langage de type SQL pour interroger et analyser le Big Data. La motivation derrière le développement de Hive est le chemin d'apprentissage sans friction pour les développeurs et analystes SQL. Hive n'est pas seulement un sauveur pour les personnes n'ayant pas de formation en programmation, mais elle réduit également le travail des programmeurs qui passent de longues heures à écrire des programmes MapReduce. Dans ce blog du didacticiel Apache Hive, je parlerai de:





Tutoriel Apache Hive: Qu'est-ce que Hive?

Apache Hive est un système d'entrepôt de données construit sur Hadoop et est utilisé pour analyser des données structurées et semi-structurées.Hive résume la complexité de Hadoop MapReduce. Fondamentalement, il fournit un mécanisme pour projeter la structure sur les données et effectuer des requêtes écrites en HQL (Hive Query Language) qui sont similaires aux instructions SQL. En interne, ces requêtes ou HQL sont converties en tâches de réduction de carte par le compilateur Hive. Par conséquent, vous n’avez pas à vous soucier de l’écriture de programmes MapReduce complexes pour traiter vos données à l’aide de Hadoop. Il s'adresse aux utilisateurs à l'aise avec SQL. Apache Hive prend en charge le langage de définition de données (DDL), le langage de manipulation de données (DML) et les fonctions définies par l'utilisateur (UDF).

Tutoriel Hive pour les débutants | Comprendre Hive en profondeur | Edureka



SQL + Hadoop MapReduce = HiveQL

Tutoriel Apache Hive: Story of Hive - de Facebook à Apache

Cas dFigure : Tutoriel Hive - Cas d'utilisation Facebook

tri par tableau c ++

Défis chez Facebook: croissance exponentielle des données

Avant 2008, toute l'infrastructure de traitement de données de Facebook était construite autour d'un entrepôt de données basé sur un SGBDR commercial. Ces infrastructures étaient suffisamment capables pour répondre aux besoins de Facebook à l'époque. Mais, comme les données ont commencé à croître très rapidement, la gestion et le traitement de cet énorme ensemble de données sont devenus un défi de taille. Selon un article Facebook, les données sont passées d'un ensemble de données de 15 To en 2007 à des données de 2 PB en 2009. De plus, de nombreux produits Facebook impliquent l'analyse des données comme Audience Insights, Facebook Lexicon, Facebook Ads, etc. avait besoin d'une solution évolutive et économique pour faire face à ce problème et a donc commencé à utiliser le framework Hadoop.



Démocratiser Hadoop - MapReduce

Mais, à mesure que les données augmentaient, la complexité des codes Map-Reduce augmentait proportionnellement. Ainsi, former des personnes n'ayant pas une formation en programmation pour écrire des programmes MapReduce est devenu difficile. Aussi, pour effectuer une analyse simple, il faut écrire une centaine de lignes de code MapReduce. Depuis, SQL était largement utilisé par les ingénieurs et les analystes, y compris Facebook, par conséquent, placer SQL au-dessus de Hadoop semblait un moyen logique de rendre Hadoop accessible aux utilisateurs ayant une expérience SQL.

Par conséquent, la capacité de SQL à suffire à la plupart des exigences analytiques et l'évolutivité de Hadoop ont donné naissance à Apache Hive qui permet d'effectuer des requêtes de type SQL sur les données présentes dans HDFS. Plus tard, le projet Hive a été open source en août 2008 par Facebook et est aujourd'hui disponible gratuitement sous le nom d'Apache Hive.

Voyons maintenant les fonctionnalités ou avantages de Hive qui le rendent si populaire.

Tutoriel Apache Hive: avantages de Hive

  • Utile pour les personnes qui ne sont pas issues de la programmation car cela élimine le besoin d'écrire un programme MapReduce complexe.
  • Extensible et évolutif pour faire face au volume et à la variété croissants des données, sans affecter les performances du système.
  • C'est comme un outil ETL (Extraire, Transformer, Charger) efficace.
  • Hive prend en charge toute application cliente écrite en Java, PHP, Python, C ++ ou Ruby en exposant ses Serveur d'épargne . (Vous pouvez utiliser ces langages côté client intégrés à SQL pour accéder à une base de données telle que DB2, etc.).
  • Comme les informations de métadonnées de Hive sont stockées dans un SGBDR, cela réduit considérablement le temps nécessaire pour effectuer des vérifications sémantiques pendant l'exécution de la requête.

Tutoriel Apache Hive: Où utiliser Apache Hive?

Apache Hive tire parti des deux mondes, à savoir le système de base de données SQL et cadre. Par conséquent, il est utilisé par une vaste multitude d'entreprises. Il est principalement utilisé pour l'entreposage de données où vous pouvez effectuer des analyses et des fouilles de données qui ne nécessitent pas de traitement en temps réel. Certains des champs dans lesquels vous pouvez utiliser Apache Hive sont les suivants:

  • Entreposage de données
  • Analyse ad hoc

Comme on dit, vous ne pouvez pas applaudir d'une seule main, c'est-à-dire que vous ne pouvez pas résoudre tous les problèmes avec un seul outil. Par conséquent, vous pouvez coupler Hive avec d'autres outils pour l'utiliser dans de nombreux autres domaines. Par exemple, Tableau avec Apache Hive peut être utilisé pour la visualisation de données, l'intégration d'Apache Tez avec Hive vous fournira des capacités de traitement en temps réel, etc.
En allant de l'avant dans ce blog du tutoriel Apache Hive, jetons un coup d'œil à une étude de cas de la NASA où vous découvrirez comment Hive a résolu le problème auquel les scientifiques de la NASA étaient confrontés lors de l'évaluation des modèles climatiques.

Tutoriel Hive: étude de cas de la NASA

Un modèle climatique est une représentation mathématique des systèmes climatiques basée sur divers facteurs qui ont un impact sur le climat de la Terre. Fondamentalement, il décrit l'interaction de divers facteurs climatiques comme l'océan, le soleil, l'atmosphère, etc.donner un aperçu de la dynamique du système climatique. Il est utilisé pour projeter les conditions climatiques en simulant les changements climatiques en fonction de facteurs qui affectent le climat. Le Jet Propulsion Laboratory de la NASA a développé un système régional d’évaluation du modèle climatique (RCMES) pour l’analyse et l’évaluation du modèle de sortie climatique par rapport aux données de télédétection présentes dans divers dépôts externes.

Le RCMES (Regional Climate Model Evaluation System) comprend deux volets:

  • RCMED (Base de données régionale d'évaluation du modèle climatique):

C'est une base de données cloud évolutive qui charge les données de télédétection et les données de réanalyse liées au climat à l'aide d'extracteurs comme les extracteurs Apache OODT, Apache Tika, etc. Enfin, elle transforme les données en modèle de point de données qui est de la forme (latitude , longitude, heure, valeur, hauteur) et le stocke dans ma base de données SQL. Le client peut récupérer les données présentes dans RCMED en effectuant des requêtes Espace / Temps. La description de ces requêtes ne nous concerne pas actuellement.

  • RCMET (Regional Climate Model Evaluation Toolkit):

Il permet à l'utilisateur de comparer les données de référence présentes dans le RCMED avec les données de sortie du modèle climatique extraites d'autres sources pour effectuer différents types d'analyse et d'évaluation. Vous pouvez vous référer à l'image ci-dessous pour comprendre l'architecture de RCMES.

Les données de référence du RCMED proviennent de la télédétection satellitaire, selon les différents paramètres nécessaires à l'évaluation du modèle climatique. Par exemple - AIRS (Atmospheric Infrared Sounder) fournit des paramètres tels que la température de l'air à la surface, la température et le géopotentiel, TRMM (Tropical Rainfall Measurement Mission) fournit des précipitations mensuelles, etc.

Problèmes rencontrés par la NASA en utilisant le système de base de données MySQL:

  • Après avoir chargé la base de données MySQL avec 6 milliards de tuples du formulaire (latitude, longitude, heure, valeur du point de données, hauteur), le système s'est écrasé comme indiqué dans l'image ci-dessus.
  • Même après avoir divisé la table entière en sous-ensembles plus petits, le système a généré d'énormes frais généraux lors du traitement des données.

Ils avaient donc besoin d'une solution évolutive capable de stocker et de traiter cette énorme quantité de données avec une capacité d'interrogation de type SQL. Enfin, ils ont décidé d'utiliser Apache Hive pour surmonter les problèmes mentionnés ci-dessus.

Comment Apache Hive peut résoudre le problème?

Voyons maintenant quelles sont ces fonctionnalités qui ont convaincu l’équipe JPL de la NASA d’inclure Apache Hive comme partie intégrante de leur stratégie de solution:

  • Depuis, Apache Hive fonctionne sur Hadoop, il est évolutif et peut traiter les données de manière distribuée et parallèle.
  • Il fournit un langage de requête Hive qui est similaire à SQL et donc facile à apprendre.

Déploiement de Hive:

L'image suivante explique l'architecte RCMES avec l'intégration Apache Hive:

Figure : Tutoriel Hive - Architecture RCMES avec Apache Hive

L'image ci-dessus montre le déploiement de la ruche apache dans RCMES. Les étapes suivantes ont été prises par l'équipe de la NASA lors du déploiement d'Apache Hive:

  • Ils ont installé Hive en utilisant Cloudera et Apache Hadoop, comme indiqué dans l'image ci-dessus.
  • Ils ont utilisé Apache Sqoop pour ingérer des données dans la Hive à partir de la base de données MySQL.
  • L'encapsuleur Apache OODT a été implémenté pour effectuer des requêtes sur Hive et récupérer les données vers RCMET.

Observations initiales d'analyse comparative avec Hive:

  • Au départ, ils ont chargé 2,5 milliards de points de données dans une seule table et effectué une requête de comptage. Par exemple, Ruche> sélectionnez count (datapoint_id) dans dataPoint. Il a fallu 5 à 6 minutes pour compter tous les enregistrements (15 à 17 minutes pour les 6,8 milliards d'enregistrements).
  • La phase de réduction a été rapide, mais la phase de carte a pris 95% du temps de traitement total. Ils utilisaient six ( 4x quadricœur ) systèmes avec 24 Go de RAM (environ) dans chacun des systèmes.
  • Même après l'ajout de machines supplémentaires, la modification de la taille du bloc HDFS (64 Mo, 128 Mo, 256 Mo) et la modification de nombreuses autres variables de configuration (io.Trier.facteur, je.Trier.mb), ils n'ont pas réussi à réduire le temps nécessaire pour effectuer le décompte.

Contributions des membres de la communauté Hive:

Enfin, les membres de la communauté Hive sont venus à la rescousse et ont fourni diverses informations pour résoudre les problèmes liés à leurs implémentations Hive actuelles:

  • Ils ont mentionné que la vitesse de lecture HDFS est d'environ 60 Mo / s par rapport à 1 Go / s dans le cas d'un disque local, en fonction de la capacité du réseau et de la charge de travail sur NameNode.
  • Les membres ont suggéré que 16 mappeurs seront nécessaires dans leur système actuel pour correspondre aux performances d'E / S d'une tâche locale non Hadoop.
  • Ils ont également suggéré de réduire la taille divisée pour chaque mappeur pour augmenter le nombredemappeurs et donc, offrant plus de parallélisme.
  • Enfin, les membres de la communauté leur ont dit de utiliser count (1) au lieu de faire référence à compter ( datapoint_id) . En effet, dans le cas de count (1), il n'y a pas de colonne de référence et par conséquent, aucune décompression et désérialisation n'a lieu lors du comptage.

Enfin, la NASA a pu adapter son cluster Hive à leurs attentes en prenant en compte toutes les suggestions données par les membres de la communauté Hive. Et par conséquent, ils ont pu interroger des milliards de lignes en seulement 15 secondes en utilisant les configurations système mentionnées ci-dessus.

Tutoriel Apache Hive: Architecture Hive et ses composants

L'image suivante décrit l'architecture Hive et le flux dans lequel une requête est soumise dansRucheet enfin traité à l'aide du framework MapReduce:

Figure : Tutoriel Hive - Architecture Hive

Comme le montre l'image ci-dessus, l'architecture Hive peut être classée dans les composants suivants:

  • Clients Hive: Hive prend en charge les applications écrites dans de nombreux langages tels que Java, C ++, Python, etc. en utilisant les pilotes JDBC, Thrift et ODBC. Par conséquent, on peut toujours écrire une application client Hive écrite dans la langue de son choix.
  • Services de la ruche: Apache Hive fournit divers services tels que la CLI, l'interface Web, etc. pour effectuer des requêtes. Nous explorerons chacun d'entre eux sous peu dans ce blog tutoriel Hive.
  • Cadre de traitement et gestion des ressources: Intérieurement,Hive utilise le framework Hadoop MapReduce comme moteur de facto pour exécuter les requêtes. est un sujet distinct en soi et n'est donc pas abordé ici.
  • Stockage distribué: Comme Hive est installé sur Hadoop, il utilise le HDFS sous-jacent pour le stockage distribué. Vous pouvez vous référer au Blog HDFS pour en savoir plus.

Maintenant, explorons les deux premiers composants majeurs de l'architecture Hive:

1. Clients Hive:

Apache Hive prend en charge différents types d'applications clientes pour effectuer des requêtes sur Hive. Ces clients peuvent être classés en trois types:

  • Clients d'épargne: Comme le serveur Hive est basé sur Apache Thrift, il peut répondre à la demande de tous les langages de programmation prenant en charge Thrift.
  • Clients JDBC: Hive permet aux applications Java de s'y connecter à l'aide du pilote JDBC qui est défini dans l'organisation de classe.apache.hadoop.ruche.jdbc.HiveDriver.
  • Clients ODBC: Le pilote ODBC Hive permet aux applications prenant en charge le protocole ODBC de se connecter à Hive. (Comme le pilote JDBC, le pilote ODBC utilise Thrift pour communiquer avec le serveur Hive.)

2. Services Hive:

Hive fournit de nombreux services comme le montre l'image ci-dessus. Jetons un coup d'œil à chacun d'eux:

  • Hive CLI (interface de ligne de commande): Il s'agit du shell par défaut fourni par Hive où vous pouvez exécuter directement vos requêtes et commandes Hive.
  • Interfaces Web Apache Hive: Outre l'interface de ligne de commande, Hive fournit également une interface graphique Web pour l'exécution de requêtes et de commandes Hive.
  • Serveur Hive: Le serveur Hive est construit sur Apache Thrift et est donc également appelé Thrift Server qui permet à différents clients de soumettre des demandes à Hive et de récupérer le résultat final.
  • Pilote Apache Hive: Il est responsable de la réception des requêtes soumises via la CLI, l'interface utilisateur Web, les interfaces Thrift, ODBC ou JDBC par un client. Ensuite, le pilote transmet la requête au compilateur où l'analyse, la vérification de type et l'analyse sémantique ont lieu à l'aide du schéma présent dans le métastore. Dans l'étape suivante, un plan logique optimisé est généré sous la forme d'un DAG (Directed Acyclic Graph) de tâches de réduction de carte et de tâches HDFS. Enfin, le moteur d'exécution exécute ces tâches dans l'ordre de leurs dépendances, en utilisant Hadoop.
  • Metastore: Vous pouvez penser métastoreen tant que référentiel central pour stocker toutes les informations de métadonnées Hive. Les métadonnées Hive comprennent divers types d'informations comme la structure des tables et les partitionsainsi que la colonne, le type de colonne, le sérialiseur et le désérialiseur requis pour l'opération de lecture / écriture sur les données présentes dans HDFS. Le métastorese compose de deux unités fondamentales:
    • Un service qui fournit un metastoreaccès à d'autresrServices de la ruche.
    • Stockage sur disque pour les métadonnées, distinct du stockage HDFS.

Maintenant, laissez-nous comprendre les différentes façons d'implémenter le métastore Hivedans la section suivante de ce didacticiel Hive.

Tutoriel Apache Hive: Configuration du Metastore

Metastore stocke les informations de métadonnées à l'aide du SGBDR et d'une couche ORM (Object Relational Model) open source appelée Data Nucleus qui convertit la représentation de l'objet en schéma relationnel et vice versa. La raison du choix du SGBDR au lieu de HDFS est d'obtenir une faible latence. Nous pouvons implémenter metastore dans les trois configurations suivantes:

1. Metastore intégré:

Le service de métastore et le service Hive s'exécutent par défaut dans la même JVM à l'aide d'une instance de base de données Derby intégrée où les métadonnées sont stockées sur le disque local. C'est ce qu'on appelle la configuration de métastore intégrée. Dans ce cas, un seul utilisateur peut se connecter à la base de données Metastore à la fois. Si vous démarrez une deuxième instance du pilote Hive, vous obtiendrez une erreur. C'est bon pour les tests unitaires, mais pas pour les solutions pratiques.

2. Metastore local:

Cette configuration nous permet d'avoir plusieurs sessions Hive, c'est-à-dire que plusieurs utilisateurs peuvent utiliser la base de données de métastore en même temps. Ceci est réalisé en utilisant n'importe quelle base de données compatible JDBC comme MySQL qui s'exécute dans une JVM distincte ou une machine différente de celle du service Hive et du service de métastore qui s'exécutent dans la même JVM comme indiqué ci-dessus. En général, le choix le plus courant consiste à implémenter un serveur MySQL en tant que base de données de métastore.

3. Metastore distant:

copie superficielle java vs copie profonde

Dans la configuration de métastore distant, le service de métastore s'exécute sur sa propre JVM distincte et non dans la JVM du service Hive. D'autres processus communiquent avec le serveur de métastore à l'aide des API Thrift Network. Vous pouvez avoir un ou plusieurs serveurs de métastore dans ce cas pour offrir plus de disponibilité.Le principal avantage de l'utilisation du métastore distant est que vous n'avez pas besoin de partager les informations d'identification de connexion JDBC avec chaque utilisateur Hive pour accéder à la base de données du métastore.

Tutoriel Apache Hive: modèle de données

Les données dans Hive peuvent être classées en trois types au niveau granulaire:

  • Table
  • Cloison
  • Seau

Les tables:

Les tables dans Hive sont les mêmes que les tables présentes dans une base de données relationnelle. Vous pouvez y effectuer des opérations de filtrage, de projet, de jointure et d'union. Il existe deux types de tables dans Hive:

1. Table gérée:

Commander:

CREATE TABLE (colonne1 type_données, colonne2 type_données)

LOAD DATA INPATH INTO table managed_table

Comme son nom l'indique (table gérée), Hive est responsable de la gestion des données d'une table gérée. En d'autres termes, ce que je voulais dire en disant 'Hive gère les données', c'est que si vous chargez les données d'un fichier présent dans HDFS dans un Hive Table gérée et émettez une commande DROP dessus, la table ainsi que ses métadonnées seront supprimées. Ainsi, les données appartenant à la table_gérée n'existe plus nulle part dans HDFS et vous ne pouvez en aucun cas le récupérer. Fondamentalement, vous déplacez les données lorsque vous exécutez la commande LOAD de l'emplacement du fichier HDFS vers le répertoire de l'entrepôt Hive.

exemple d'arguments de ligne de commande java

Remarque: Le chemin par défaut du répertoire de l'entrepôt est défini sur / user / hive / warehouse. Les données d'une table Hive résident dans entrepôt_directory / nom_table (HDFS). Vous pouvez également spécifier le chemin du répertoire d'entrepôt dans le paramètre de configuration hive.metastore.warehouse.dir présent dans le fichier hive-site.xml.

2. Table externe:

Commander:

CREATE EXTERNAL TABLE (column1 data_type, column2 data_type) LOCATION ''

CHARGER L'ENTRÉE DES DONNÉES «» DANS LE TABLEAU

Pour table externe , Hive n'est pas responsable de la gestion des données. Dans ce cas, lorsque vous exécutez la commande LOAD, Hive déplace les données dans son répertoire d'entrepôt. Ensuite, Hive crée les informations de métadonnées pour la table externe. Maintenant, si vous émettez une commande DROP sur le table externe , seules les informations de métadonnées concernant la table externe seront supprimées. Par conséquent, vous pouvez toujours récupérer les données de cette table très externe à partir du répertoire de l'entrepôt à l'aide des commandes HDFS.

Partitions:

Commander:

CREATE TABLE nom_table (type_données colonne1, type_données colonne2) PARTITIONED BY (type_données partition1, type_données partition2, & hellip.)

Hive organise les tables en partitions pour regrouper des types de données similaires en fonction d'une colonne ou d'une clé de partition. Chaque table peut avoir une ou plusieurs clés de partition pour identifier une partition particulière. Cela nous permet d'avoir une requête plus rapide sur des tranches de données.

Remarque: N'oubliez pas que l'erreur la plus courante lors de la création de partitions est de spécifier un nom de colonne existant en tant que colonne de partition. Ce faisant, vous recevrez une erreur - «Erreur d'analyse sémantique: colonne répétée dans les colonnes de partitionnement».

Comprenons la partition en prenant un exemple où j'ai une table student_details contenant les informations sur les étudiants d'une école d'ingénieurs comme student_id, nom, département, année, etc. Maintenant, si j'effectue un partitionnement basé sur la colonne du département, les informations de tous les étudiants appartenant à un département particulier seront stockés ensemble dans cette même partition. Physiquement, une partition n'est rien d'autre qu'un sous-répertoire dans le répertoire de la table.

Supposons que nous ayons des données pour trois départements dans notre table student_details: CSE, ECE et Civil. Par conséquent, nous aurons trois partitions au total pour chacun des départements, comme indiqué dans l'image ci-dessous. Et, pour chaque département, nous aurons toutes les données concernant ce même département résidant dans un sous-répertoire séparé sous le répertoire de la table Hive. Par exemple, toutes les données sur les étudiants concernant les départements CSE seront stockées dans user / hive / warehouse / student_details / dept. = CSE. Ainsi, les requêtes concernant les étudiants CSE n'auraient qu'à parcourir les données présentes dans la partition CSE. Cela rend le partitionnement très utile car il réduit la latence des requêtes en analysant uniquement pertinent données partitionnées au lieu de l'ensemble de données. En fait, dans les implémentations du monde réel, vous aurez affaire à des centaines de To de données. Alors, imaginez analyser cette énorme quantité de données pour une requête où 95% les données que vous avez analysées n'étaient pas pertinentes pour votre requête.

Je vous suggère de parcourir le blog sur Commandes Hive où vous trouverez différentes manières d'implémenter des partitions avec un exemple.

Godets:

Commandes:

CREATE TABLE nom_table PARTITIONED BY (type_données partition1, type_données partition2, & hellip.) CLUSTERED BY (nom_colonne1, nom_colonne2,…) SORTED BY (nom_colonne [ASC | DESC],…)] INTO num_buckets GODETS

Maintenant, vous pouvez diviser chaque partition ou la table non partitionnée en buckets en fonction de la fonction de hachage d'une colonne de la table. En fait, chaque compartiment est juste un fichier dans le répertoire de partition ou dans le répertoire de table (table non partitionnée). Par conséquent, si vous avez choisi de diviser les partitions en n compartiments, vous aurez n fichiers dans chacun de votre répertoire de partition. Par exemple, vous pouvez voir l'image ci-dessus où nous avons regroupé chaque partition en 2 compartiments. Ainsi, chaque partition, disons CSE, aura deux fichiers où chacun d'entre eux stockera les données de l'étudiant CSE.

Comment Hive distribue les lignes dans des buckets?

Eh bien, Hive détermine le numéro de compartiment pour une ligne en utilisant la formule: hash_function (bucketing_column) modulo (num_of_buckets) . Ici, hash_function dépend du type de données de la colonne. Par exemple, si vous regroupez la table sur la base d’une colonne, disons user_id, de type de données INT, la fonction hash_function sera - hash_function (user_id ) = valeur entière de user_id . Et, supposons que vous ayez créé deux compartiments, Hive déterminera les lignes allant au compartiment 1 dans chaque partition en calculant: (valeur de user_id) modulo (2). Par conséquent, dans ce cas, les lignes ayant user_id se terminant par un chiffre entier pair résideront dans un même compartiment correspondant à chaque partition. La fonction hash_function pour d'autres types de données est un peu complexe à calculer et en fait, pour une chaîne, elle n'est même pas reconnaissable humainement.

Remarque: Si vous utilisez Apache Hive 0.x ou 1.x, vous devez émettre la commande - set hive.enforce.bucketing = true à partir de votre terminal Hive avant d'effectuer le compartimentage. Cela vous permettra d'avoir le nombre correct de réducteur tout en utilisant une clause cluster by pour regrouper une colonne. Si vous ne l'avez pas fait, vous constaterez peut-être que le nombre de fichiers générés dans votre répertoire de table n'est pas égal au nombre de compartiments. Comme alternative, vous pouvez également définir le nombre de réducteurs égal au nombre de compartiments en utilisant set mapred.reduce.task = num_bucket.

Pourquoi avons-nous besoin de seaux?

Il existe deux raisons principales pour effectuer un compartimentage sur une partition:

  • À jointure latérale de la carte exige que les données appartenant à une clé de jointure unique soient présentes dans la même partition. Mais qu'en est-il des cas où votre clé de partition diffère de join? Par conséquent, dans ces cas, vous pouvez effectuer une jointure côté carte en regroupant la table à l'aide de la clé de jointure.
  • Le bucketing rend le processus d'échantillonnage plus efficace et, par conséquent, nous permet de réduire le temps de requête.

Je voudrais conclure ici ce tutoriel sur Hive. Je suis presque sûr qu'après avoir parcouru ce blog tutoriel Hive, vous auriez réalisé la simplicité d'Apache Hive. Depuis, vous avez appris tous les principes de base de Hive, il est grand temps d'acquérir une expérience pratique avec Apache Hive. Alors, consultez le prochain blog de cette série de blogs Hive Tutorial qui concerne l'installation de Hive et commencez à travailler sur Apache Hive.

Maintenant que vous avez compris Apache Hive et ses fonctionnalités, consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation à la certification Edureka Big Data Hadoop aide les apprenants à devenir des experts dans les domaines HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume et Sqoop en utilisant des cas d'utilisation en temps réel sur le commerce de détail, les médias sociaux, l'aviation, le tourisme et la finance.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires et nous vous recontacterons.