Dans les entreprises, le volume des données à stocker et à traiter ne cesse de croitre. Il faut donc sans cesse innover pour trouver comme analyser rapidement et de manière fiable des données à la fois structurées et complexes. Hadoop est une réponse.
Fonctionnellement, il propose une nouvelle façon de stocker et d’analyser massivement des données.
Techniquement, il repose sur deux fondamentaux :
- HDFS, un système de fichiers distribué,
- et une implémentation adaptée de l’algorithme MapReduce.
HDFS
Le Hadoop Distributed File System (HDFS) est un système de fichiers distribué conçu pour fonctionner sur du matériel standard. Il ressemble beaucoup aux systèmes de fichiers distribués existants avec toutefois des différences importantes puisqu’il est destiné aux architectures comportant de nombreux noeuds, aini :
- HDFS est très tolérant aux pannes, il peut donc être déployé sur un matériel à faible coût.
- Il fournit un accès haut débit aux données et est adapté aux applications qui traitent de très grosses quantités de données.
- Avec HDFS, les fichiers peuvent être répartis sur plusieurs machines.
- Ils peuvent aussi être divisés en plusieurs morceaux qui sont répliqués.
- Si un nœud tombe en panne, ses données sont répliquées.
- HDFS équilibre la charge des disques et des noeuds.
MapReduce
Historiquement, Jeffrey Dean et Sanjay Ghemawat, deux Google fellows, présentent à San Francisco en décembre 2004 une communication dont le titre est « MapReduce: Simplified Data Processing on Large Clusters« . Ils y décrivent le résultat de 2 années de travaux : un framework réalisé en C++ avec des interfaces en Python et en Java utilisé dans une architecture avec des centaines ou des milliers de CPU pour traiter en parallèle de très grandes quantités de données.
Simplement, la méthode est la suivante : une fonction map
- itère sur une liste d’éléments indépendants,
- réalise une opération spécifique sur chaque élément
- et stocke les réponses dans une liste distincte.
L’itération est d’abord logique car les opérations peuvent être parallélisées puisque chaque élément est calculé indépendamment et que la liste originale n’est pas modifiée.
Pour donner un ordre de grandeur, Google est passé par jour, pour la transformation de données avec MapReduce, de 100 To (1 To = 1000 Mo) en 2004 à 20 Po (1 Po = 1000 To) en 2008, soit une progression d’un rapport 200 en 4 ans.
Hadoop
Après 5 ans de travail sur le moteur de recherche open-source Nutch, Doug Cutting crée la plateforme qu’il baptise Hadoop, du nom de l’éléphant en peluche de son enfant. Destinée à la consolidation, la combinaison et l’analyse des données, Hadoop est à partir de 2009 un projet open-source administré par la fondation Apache Software.