Académique Documents
Professionnel Documents
Culture Documents
Cours Hive Hem 22
Cours Hive Hem 22
ROCHD
Professeur de l'Enseignement Supérieur - Chercheur
Département Mathématiques & Informatique
INTRODUCTION
Aujourd’hui, on entend beaucoup parler des technologies
Big Data :
les chefs de projets en parlent et souhaitent expérimenter
l’apport de ces technologies en termes de scalabilité, les
commerciaux parlent de missions Big Data et de DataLab
chez les clients, les RH cherchent des experts Big Data et
des développeurs Hadoop qu’ils n’arrivent pas facilement à
trouver.
Frameworks Big Data
Un nombre très important de frameworks Big Data a
vu le jour ces dernières années et l’écosystème Big Data
est en pleine effervescence. Cependant, compte tenu
du manque de maturité de son écosystème, plusieurs
frameworks disparaissent à cause de leur complexité
ou non adéquation avec les nouveaux besoins.
Apache Hive
Nous allons, introduire Apache Hive, un framework
Big Data pour l’analyse des données.
Son utilité : proposer une abstraction en dessus de
MapReduce pour faciliter l’analyse de gros volumes de
données.
Ses atouts : de nombreux projets en production, une
communauté active et un rythme de release assurant la
compatibilité avec les nouvelles versions de Hadoop.
Définition
Initialement développé par Facebook, Apache Hive est un
système d'entrepôt de données open source qui permet
d'interroger et analyser de grands ensembles de données stockées
sur Hadoop.
Figure 7 : Commande HQL pour charger les données depuis HDFS dans
la table product-ext
Gestion des partitions
Le tri:
Le tri de données s’effectue dans Hive avec l’une des
deux clauses : ORDER BY et SORT BY. La syntaxe des
deux clauses est similaire (cf. Figure 5). Cependant,
leur fonctionnement est différent :
ORDER BY
Elle assure un ordre complet, toutes les données sont
envoyées à un seul reducer sur lequel l’opération de tri
sera réalisée. Son inconvénient : non scalable sur de
gros datasets. Pour cette raison, il est recommandé
d’ajouter la clause LIMIT dans la requête. Ceci est
indispensable pour limiter la taille de données en
sortie afin de permettre le traitement par un seul
reducer.
SORT BY
Elle assure un ordre partiel en effectuant un tri au
niveau de chaque reducer.
Donc, la clause ORDER BY est utilisable dans des
environnements de développement et de prototypage
mais fortement déconseillée en production puisqu’elle
est non scalable sur des grands volumes de données.
Figure 5: Syntaxe de ORDER BY / SORT BY
Gestion et optimisation de la
distribution:
Il est possible dans Hive d’optimiser la distribution de
données sur l’ensemble des reducers (quand leur
nombre est >1). Ceci est fait en utilisant le mot clé
‘‘DISTRIBUTE BY’’. Dans notre exemple avec le code
pays, les données avec le même pays d’origine vont être
traitées par le même reducer (Cf. Figure 6).
Cependant, cette clause ne garantit aucune forme de
clustering : les données seront renvoyées au même
reducer mais peuvent être non adjacentes. Pour les
grouper et forcer les données à être adjacentes, il faut
ajouter une clause SORT BY.
Figure 6 : Exemple d’utilisation de DISTRIBUTE BY
Conclusion