Hadoop
| Fiche express | |
|---|---|
| Domaine | Traitement distribué de données à grande échelle (Bigdata) |
| Composants clés | HDFS (stockage), YARN (ordonnancement), MapReduce (calcul) |
| Écosystème lié | HBase, Zookeeper, Storm |
| Voir aussi | HBase · Zookeeper · Storm |
Apache Hadoop est un framework open source de stockage et de traitement distribué de très gros volumes de données, conçu pour tourner sur des clusters de machines standard (commodity hardware) plutôt que sur du matériel spécialisé — la fiabilité vient de la réplication des données entre nœuds, pas de matériel redondant coûteux.
Composants principaux
- HDFS (Hadoop Distributed File System) — système de fichiers distribué : les fichiers
sont découpés en blocs, répliqués (3 copies par défaut) sur différents nœuds du cluster.
- YARN (Yet Another Resource Negotiator) — ordonnanceur de ressources du cluster
(CPU/mémoire), qui alloue les jobs aux nœuds disponibles.
- MapReduce — modèle de programmation historique pour paralléliser un traitement en deux
phases (map : transformation locale par bloc de données, reduce : agrégation des résultats) — largement complété aujourd'hui par des moteurs plus rapides comme Apache Spark, capables de lire les données stockées sur HDFS sans repasser par MapReduce.
(correction : contrairement à une idée reçue, Hadoop ne travaille pas exclusivement avec des données « non modifiables » — HDFS est en écriture unique/lecture multiple par conception (write-once-read-many), mais des composants de l'écosystème comme HBase permettent bien des mises à jour ligne par ligne au-dessus de HDFS.)
Écosystème
Hadoop est rarement utilisé seul : il constitue la couche de stockage/calcul de base d'un écosystème plus large, dont plusieurs briques sont couvertes séparément sur ce wiki :
- HBase — base NoSQL orientée colonnes, construite au-dessus de HDFS.
- Zookeeper — coordination distribuée (élection de leader, verrous, configuration
partagée), utilisé en interne par HBase et Storm.
- Storm — traitement de flux de données en temps réel, complémentaire du traitement par
lots (batch) de MapReduce.