Caractéristiques-clefs
- Home URL
- https://hadoop.apache.org
Description
Présentation rapide et historique
Hadoop est un framework libre et open source écrit en Java, créé pour faciliter la création d'applications distribuées et échelonnables. Inspiré par les publications de MapReduce, GoogleFS et BigTable de Google, Hadoop a été développé par Doug Cutting. Depuis 2009, il fait partie des projets de la fondation logicielle Apache. Hadoop permet aux applications de travailler avec des milliers de nœuds et des pétaoctets de données, en utilisant des machines standard regroupées en grappe. Les modules de Hadoop sont conçus pour gérer les pannes matérielles automatiquement, car elles sont considérées comme fréquentes dans un environnement distribué.
Le noyau d'Hadoop est constitué de deux parties principales : HDFS (Hadoop Distributed File System) pour le stockage des données et MapReduce pour le traitement des données. HDFS fractionne les fichiers en gros blocs et les distribue à travers les nœuds du cluster. Pour traiter les données, Hadoop transfère le code à chaque nœud, permettant à chaque nœud de traiter les données dont il dispose. Cela permet de traiter l'ensemble des données plus rapidement et plus efficacement que dans une architecture supercalculateur plus classique.
Caractéristiques et fonctionnalités
- HDFS (Hadoop Distributed File System): Système de fichiers distribué pour stocker des données en blocs sur les nœuds du cluster. HDFS garantit une haute disponibilité et une tolérance aux pannes en répliquant les données sur plusieurs nœuds.
- MapReduce: Cadre de programmation pour traiter les données en parallèle sur les nœuds du cluster. MapReduce simplifie le développement d'applications distribuées en fournissant une abstraction pour le traitement des données.
- Apache Pig: Langage de haut niveau pour traiter les données dans HDFS. Pig permet de créer des programmes de traitement de données complexes de manière plus simple et plus rapide.
- Apache Hive: Système de gestion de données pour stocker et retrouver les données dans HDFS. Hive fournit une interface de type SQL pour interroger les données stockées dans HDFS.
- Apache HBase: Système de gestion de bases de données NoSQL pour stocker et retrouver les données dans HDFS. HBase est conçu pour gérer de grandes quantités de données structurées et non structurées.
- Apache Phoenix: Système de gestion de bases de données relationnelles pour stocker et retrouver les données dans HDFS. Phoenix permet l'accès en temps réel aux données HBase via SQL.
- Apache Spark: Framework de traitement de données en temps réel pour traiter les données dans HDFS. Spark est plus rapide que MapReduce pour certaines tâches grâce à sa capacité à traiter les données en mémoire.
- Apache ZooKeeper: Système de gestion de la configuration et de la synchronisation pour les applications distribuées. ZooKeeper assure la coordination entre les différents nœuds du cluster.
- Apache Impala: Moteur de requêtes SQL pour traiter les données dans HDFS. Impala permet des requêtes rapides et interactives sur les données stockées dans HDFS.
- Apache Flume: Outil de collecte de données pour importer les données dans HDFS. Flume est utilisé pour collecter, agréger et transférer de grandes quantités de données en temps réel.
- Apache Sqoop: Outil de transfert de données pour importer et exporter les données entre HDFS et les bases de données relationnelles. Sqoop facilite l'intégration des données entre les systèmes de gestion de bases de données et Hadoop.
- Apache Oozie: Système de workflow pour orchestrer les tâches de traitement de données dans HDFS. Oozie permet de planifier et de coordonner les tâches de traitement de données dans un environnement Hadoop.
- Apache Storm: Framework de traitement de données en temps réel pour traiter les données dans HDFS. Storm est conçu pour traiter des flux de données en temps réel avec une faible latence.