6 CONCLUSION
Ce mémoire nous a permis de découvrir en
détail le fonctionnement de l'écosystème de Hadoop. Ce
dernier était relativement rigide à ses débuts,
l'allocation des ressources et le framework de traitement formaient une seule
entité. De plus, MapReduce ne pouvait être utilisé
autrement que par une succession immuable de phases Map puis Reduce.Au fil des
années, de nombreux projets se sont greffés à lui et ont
contribué à lui apporter plus de souplesse (YARN) permettant
l'essor d'autres frameworks de traitement distribué comme Tez (qui
généralise MapReduce).
Nous avons pu dresser un état de l'art à jour de
Hadoop, tout en établissant du sens entre son infrastructure
(NameNode+DataNodes, RessourceManager+NodeManager+ApplicationMaster) et la
réalité d'un traitement (via MapReduce ou Tez).Il en a
été de même vis-à-vis de Hive, application
transformant du SQL en traitement distribué. Nous avons ainsi pu
comprendre la logique MapReduce cachée derrière l'usage de
requêtes SQL classiques.En effet, il est fondamental de bien comprendre
le fonctionnement de Hive, car son usage ne peut se faire en mode
« boîte noire » dès lors où il est
question d'optimiser ses performances.
Notre approche de l'optimisation nous a ensuite permis
d'aborder deux aspects. D'une part, le réglage, dans cette
partie nous avons passé en revue de nombreuses options disponibles pour
régler au mieux la façon dont Hive transformera le SQL en
traitement distribué ; nous avons abordé les plus
fondamentales, apportant de réels gains, tout en sachant qu'il en existe
une myriade.D'autre part, la conceptionqui nous a permis de souligner
l'importance de la connaissance fine des données à traiter, et
ce, durant tout leur cycle de vie ; nous avons établi que les
parades techniques abordées dans cette partien'ont de sens que dans un
contexte d'étude préliminaire et statistique des
données.
Cependant, nous n'avons fait qu'effleurer les quantités
de solutions existantes. Si nous sommes capables de les appréhender plus
facilement à présent, certaines mériteraient de s'y
attarder davantage.Néanmoins, l'écosystème Hadoop est en
mouvement permanent. Ce qui nous semble vrai aujourd'hui ne le sera
peut-être plus demain, aussi sera-t-il plus que nécessaire de
réaliser une veille technologique permanente pour continuer à
maîtriser son usage.
Hadoop, depuis ses débuts, ne cesse de gagner en
maturité. La communauté Open Source qui l'anime est très
active et s'organise professionnellement au côté d'entreprises
qui participent à son développement.A l'heure actuelle, des
travaux sont déjà en cours pour résorber les principaux
goulots d'étranglement comme le NameNode du HDFS ou les latences
liées à l'allocation des ressources par YARN. Mais c'est surtout
la capacité de Hadoopà ne pas se borner au seul paradigme
MapReduce, à continuer de généraliser les concepts qu'il
véhicule, à s'ouvrir aux autres technologiesqui sera
déterminante pour son futur.
Hive se révèlequant à lui, un outil de
haut niveau formidable pour entrer rapidement dans le Big Data de Hadoop.Sa
dernière architecture lui permet d'utiliser indifféremment
plusieurs frameworks de traitement distribués. Et si Tez est un
véritable progrès par rapport à MapReduce, il en existe un
autre, plus récent : Spark. Ce dernier est réputé
pour être encore plus généraliste et entièrement
« in-memory », mais il reste à déterminer
pour quels volumes de données il excelle réellement.
Enfin, Hive nécessiteencore des améliorations,
notamment au regard de l' « art » du
paramétrage qu'il véhicule et qui impose audéveloppeur
d'être à un niveau d'expertise comparable à celui d'un
administrateur de base de données. Ce qui n'est pas acceptable de nos
jours. Un système mature se caractérise notamment par la
confiance que l'utilisateur peut accorder aux choix d'optimisation qu'il
opère sans intervention humaine. Pour que Hive puisse continuer
d'exister, il devra ainsi se charger de ses propres réglages et ne pas
les laisser à la charge du développeur.Une piste envisageable
serait donc d'ajouter davantage d'intelligence artificielle à Hive. Cela
afin de l'aider à la prise de décisions efficaces quant aux
stratégies d'optimisation qu'il devra mettre en oeuvre.
|