Vue d’ensemble d’un écosystème HADOOP

664px-Hadoop_logo.svg

HADOOP est une plateforme qui utilise une architecture repartie. C’est l’addition de la capacité de stockage et de traitement de chacun des nœuds qui permet d’offrir un espace de stockage et une puissance de calcul pouvant traiter des volumes de données de plusieurs Téraoctets ou Pétaoctets. Dans cet article, je vais vous présenter une vue d'ensemble de son écosystème.

L’écosystème hadoop désigne le framework qui implémente le modèle de calcul MapReduce et fournit un système de fichiers distribué redondant, optimisé et fiable pour la gestion des fichiers de données volumineux (HDFS) ainsi que l’ensemble des outils permettant d’exploiter ce framework.

Le cœur d’HADOOP

hdfs

HDFS (HADOOP Distributed File System) est le système de gestion de fichiers distribué d’HADOOP en charge du stockage des données dans le cluster. Ecrit en JAVA, il a été conçu pour stocker de très gros volumes de données sur un grand nombre de machines équipées de disques durs. Il permet l'abstraction de l'architecture physique de stockage, afin de manipuler un système de fichiers distribué comme s'il s'agissait d'un disque dur unique.

Le fonctionnement de HDFS est assuré par deux types de nœuds :

  • Le NameNode qui est un nœud maître et qui dispose d’une machine dédiée pour diriger les DataNode
  • Le DataNode est un composant qui stocke et restitue les blocs de données. C’est un nœud esclave implémenté sur chaque machine du cluster qui n’est pas un nœud maître.

mapreduce

MapReduce est un modèle de programmation conçu spécifiquement pour lire, traiter et écrire des volumes de données très importants. C’est un Framework écrit en Java et implémenté dans HADOOP. Il met généralement en œuvre des tâches de type map et des tâches de type reduce.

Dans l'étape Map le NameNode analyse un problème, le découpe en sous-problèmes, et les délègue aux DataNode qui traitent les diffèrent sous-problèmes. Vient ensuite l'étape Reduce, où les nœuds les plus bas font remonter leurs résultats au nœud parent qui les avait sollicités.

Ecosystème  HADOOP

Plusieurs outils proposant des fonctionnalités différentes utilisent le Framework HADOOP. Ils forment l’écosystème HADOOP.

HIVE et PIG sont deux outils qui permettent d’interagir avec les données contenues dans HDFS en exécutant des jobs MapReduce de façon transparente.

hiveHive est un outil développé par Facebook qui permet d’utiliser HADOOP par le biais de requêtes HiveQL. Ce langage est proche du SQL. Il permet de construire un modèle de données relationnel basé sur les données contenues dans HDFS.

Ce modèle de données est stocké dans un métastore qui gère la définition des tables ainsi que les métadonnées.

pig

Pig est un outil développé par Yahoo qui permet d’exécuter des jobs mapreduce en utilisant un langage de scripting (PigLatin). Les scripts PigLatin permettent de travailler sur des données contenues dans HDFS. Ces données sont traitées par MapReduce qui retourne le résultat de ses calculs à Pig.

flume

Flume: Il s’agit d’un outil permettant d’injecter de gros volumes de données en temps réel dans HDFS. Cet outil est capable de « streamer » des données depuis n’importe quelle source pour les ajouter dans HADOOP. Flume est évolutif (les performances peuvent être accrues en ajoutant des nœuds) et extensible (intègre des données en provenance de sources variées).

habse

HBASE: C’est une base de données non relationnelle distribuée. Elle a la particularité d’utiliser les données directement dans HDFS sans passer par des tâches. MapReduce.HBASE présente donc des caractéristiques assez similaires à celles de HDFS (capacité à gérer des volumes de données de plusieurs Po, forte tolérance de panne…). HBASE est bien adaptée pour gérer des données parsemées comme par exemple une table de plusieurs milliers de colonnes avec une majorité de cellules vides.

ozzie

Oozie est un outil d’ordonnancement de jobs HADOOP. En effet, de nombreux traitements ne peuvent être réalisés par un seul job. Il faut alors créer et gérer une chaîne de traitement. C’est ce que permet de faire Oozie. Il est également capable de gérer des dépendances temporelles, d’exécuter une tâche plusieurs fois de suite ou encore de faire remonter d’éventuelles erreurs.

hue

HUE est un outil permettant d’obtenir une interface graphique de HADOOP. Cette interface graphique comprend un navigateur de fichiers permettant d’accéder à HDFS, un navigateur de job MapReduce, un navigateur HBASE ainsi qu’un éditeur de requête pour Hive et Pig.

Nous verrons dans un prochain article un exemple d'utilisation d'un écosystème HADOOP.

Un commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *