Qu'est ce qu'un cluster Hadoop ?
Apache Hadoop est un framework open source utilisé pour stocker et traiter efficacement de grands ensembles de données dont la taille va du gigaoctet au pétaoctet. Au lieu d'utiliser un seul gros ordinateur pour stocker et traiter les données, Hadoop permet de regrouper plusieurs ordinateurs pour analyser plus rapidement des ensembles de données massifs en parallèle.
Hadoop se compose de quatre modules principaux :
- Hadoop Distributed File System (HDFS) - Un système de fichiers distribués qui fonctionne sur du matériel standard ou bas de gamme. HDFS offre un meilleur débit de données que les systèmes de fichiers traditionnels, en plus d'une tolérance élevée aux pannes et d'une prise en charge native des grands ensembles de données.
- Yet Another Resource Negotiator (YARN) - Gère et surveille les nœuds de cluster et l'utilisation des ressources. Il planifie les travaux et les tâches.
MapReduce - Cadre qui aide les programmes à effectuer des calculs parallèles sur les données. La Map task prend les données d'entrée et les convertit en un ensemble de données qui peuvent être calculées en paires clé-valeur. La sortie de la map task est consommée par les tâches reduce pour agréger la sortie et fournir le résultat souhaité. - Hadoop Common - Fournit des bibliothèques Java communes qui peuvent être utilisées dans tous les modules.
Comment fonctionne Hadoop ?
Hadoop facilite l'utilisation de toute la capacité de stockage et de traitement des serveurs en cluster, ainsi que l'exécution de processus distribués sur d'énormes quantités de données. Hadoop fournit les éléments de base sur lesquels d'autres services et applications peuvent être construits.
Les applications qui collectent des données sous différents formats peuvent les placer dans le cluster Hadoop en utilisant une opération API pour se connecter au NameNode. Le NameNode suit la structure du répertoire des fichiers et le placement des "chunks" pour chaque fichier, répliqués sur les DataNodes. Pour exécuter une tâche d'interrogation des données, il faut fournir une tâche MapReduce composée de plusieurs tâches de mappage et de réduction qui s'exécutent sur les données du HDFS réparties sur les DataNodes. Les tâches Map s'exécutent sur chaque nœud par rapport aux fichiers d'entrée fournis, et les réducteurs s'exécutent pour agréger et organiser le résultat final.
L'écosystème Hadoop s'est considérablement développé au fil des ans grâce à son extensibilité. Aujourd'hui, l'écosystème Hadoop comprend de nombreux outils et applications pour aider à collecter, stocker, traiter, analyser et gérer les données volumineuses. Certaines des applications les plus populaires sont :
- Spark - Un système de traitement distribué open source couramment utilisé pour les charges de travail de big data. Apache Spark utilise la mise en cache en mémoire et l'exécution optimisée pour des performances rapides, et il prend en charge le traitement général par lots, l'analyse en continu, l'apprentissage automatique, les bases de données graphiques et les requêtes ad hoc.
- Presto - Un moteur de requête SQL distribué, open source, optimisé pour l'analyse ad hoc des données à faible latence. Il prend en charge la norme ANSI SQL, y compris les requêtes complexes, les agrégations, les jointures et les fonctions de fenêtre. Presto peut traiter des données provenant de plusieurs sources de données, notamment le système de fichiers distribués Hadoop (HDFS) et Amazon S3.
- Hive - Permet aux utilisateurs d'exploiter Hadoop MapReduce à l'aide d'une interface SQL, ce qui permet des analyses à grande échelle, en plus de l'entreposage de données distribué et tolérant aux pannes.
- HBase - Base de données versionnée, non relationnelle et open source qui fonctionne au-dessus d'Amazon S3 (en utilisant EMRFS) ou du système de fichiers distribués Hadoop (HDFS). HBase est un entrepôt de données distribué, massivement évolutif, conçu pour un accès aléatoire, strictement cohérent et en temps réel à des tables comportant des milliards de lignes et des millions de colonnes.
- Zeppelin - Un carnet de notes interactif qui permet une exploration interactive des données.