Le traitement de tonnes de données nécessite un arrangement spécial. Les techniques de calcul courantes sont insuffisantes pour gérer une avalanche de données, d'autant plus lorsqu'elles proviennent de plusieurs sources. Dans le Big Data, l'ampleur dont nous parlons est énorme, mesurée en zettaoctets, exaoctets, ou millions de pétaoctets ou milliards de téraoctets. Le framework appelé Hadoop est couramment utilisé pour gérer certains des problèmes liés à la gestion du Big Data. Cet article tente de donner une idée d'introduction sur Hadoop à la lumière du Big Data.
Évolution
Rien ne se passe avec un grand bang. L'origine et l'évolution de Hadoop sont graduelles et selon le besoin de l'heure en matière de Big Data. Pour dire brièvement, il doit son origine au projet Apache Nutch de Doug Cutting en 2003, en particulier au début de la partie code de celui-ci. La genèse a été développée à partir de Google File System (GFS), un article publié en octobre 2003, qui a influencé un autre article appelé MapReduce :Simplified Data Processing on Large Clusters. Le code pour HDFS dans Hadoop est exclu du projet Apache Nutch en 2006 et est fortement influencé par les algorithmes GFS et MapReduce. Et, le fait que le nom "Hadoop" provienne de l'éléphant en peluche du fils de Cutting fait clairement écho à l'idée qu'il y a un éléphant dans la pièce auquel Hadoop veut clairement s'adresser ou traiter.
En bref
Aujourd'hui, Hadoop est passé de ses débuts monolithiques à une bibliothèque de logiciels, un cadre pour développer des applications qui nécessitent un traitement distribué de quantités massives de données se trouvant sur des grappes d'ordinateurs à l'aide de modèles de programmation simples. Il peut évoluer d'un serveur unique à des milliers de machines. L'idée est de répartir le calcul et le stockage sur plusieurs ordinateurs pour tirer parti du traitement de grands ensembles de données. La bibliothèque a la capacité de détecter les défaillances au niveau de la couche d'application afin que le programmeur puisse les gérer et fournir un service au-dessus d'un cluster d'ordinateurs plutôt que de transmettre la défaillance à un ou plusieurs niveaux inférieurs où il devient plus difficile de gérer ou surmonter.
Hadoop est donc une combinaison d'outils et de bibliothèques open source pris en charge par Apache pour créer des applications d'informatique distribuée hautement fiables et évolutives.
Comment ça marche
Hadoop traite essentiellement le Big Data de trois manières :
- Le premier problème est le stockage. Les données sont stockées dans plusieurs machines informatiques dans un environnement distribué où elles peuvent être traitées en parallèle pour réduire le temps et les ressources. Les données sont conservées dans un environnement appelé Hadoop Distributed File System (HDFS) , qui est utilisé pour stocker des données dans plusieurs formats sur des clusters de machines. À cette fin, il divise les données en blocs et les stocke sur différents nœuds de données. Il utilise une technique appelée mise à l'échelle horizontale pour ajouter des nœuds de données supplémentaires aux clusters HDFS existants en fonction des besoins. Cela maximise l'utilisation des ressources existantes au lieu d'en ajouter une chaque fois que le besoin d'évoluer se fait sentir.
- Le deuxième problème est de s'adapter à la variété des données. HDFS est équipé pour stocker toutes sortes de données, qu'elles soient structurées, semi-structurées ou non structurées. Il n'y a pas de validation de schéma de pré-vidage. Les données, une fois écrites, peuvent être lues plusieurs fois sans aucun problème.
- Le troisième problème concerne le traitement et la manière d'accéder aux données stockées. À cet égard, l'algorithme MapReduce vient à la rescousse, où le traitement est réparti sur les nœuds esclaves pour fonctionner en parallèle et le résultat est renvoyé au nœud maître. Le nœud maître fusionne les résultats avant de fournir le résultat final. Cette partie est gérée par le YARN, qui est conçu pour le traitement parallèle des données stockées dans HDFS.
Il comporte de nombreuses parties complexes, mais c'est ce que fait Hadoop en un mot. L'idée de modules donnerait un aperçu supplémentaire.
Modules
Le projet Apache Hadoop se compose de six modules. Les quatre premiers sont les suivants :
- Hadoop commun :Il s'agit d'utilitaires couramment utilisés par Hadoop et prend en charge d'autres modules Hadoop. Il est également connu sous le nom de Hadoop Core et est une partie essentielle de l'écosystème, avec HDFS, YARN et MapReduce. C'est dans cette partie que Hadoop présume que le matériel est sujet aux pannes et que tous les moyens nécessaires sont fournis à un programmeur pour gérer automatiquement les pannes dans le logiciel.
- Système de fichiers distribué Hadoop (HDFS) :Un système de fichiers distribué qui peut accueillir une variété de fichiers dans un environnement distribué. Il divise les fichiers en blocs et les stocke sur des nœuds dans une architecture distribuée. Il fournit une mise à l'échelle horizontale au lieu d'une mise à l'échelle verticale, pour un regroupement supplémentaire vers le haut. Il est hautement tolérant aux pannes et peu coûteux en termes de capacités de déploiement matériel.
- FIL Hadoop :Il s'agit du CPU du framework Hadoop. Avec deux composants principaux, appelés NodeManager et ResourceManager , YARN effectue toutes les activités de traitement telles que l'allocation des ressources, la planification des tâches et la gestion des clusters.
- Hadoop MapReduce :Il s'agit d'un cadre pour faire tout le calcul parallèle. MapReduce est un modèle de programmation parallèle pour traiter les données dans un environnement distribué. Il est idéalement utilisé pour écrire des applications distribuées capables de traiter efficacement de grandes quantités de données sur des clusters de matériel de base. Il segmente le processus en deux phases, appelées Carte et Réduire , où la tâche du Mappeur class consiste à prendre l'entrée, à la segmenter, à la mapper et à la trier. La sortie devient alors l'entrée du Réducteur class, qui recherche les paires correspondantes et les réduit. Il existe des paires clé-valeur pour l'entrée et la sortie dans chaque phase, et le type de paire est déterminé par le programmeur.
Deux nouveaux sous-projets ont été ajoutés récemment :
- Hadoop Ozone :Il s'agit d'un magasin d'objets évolutif, redondant et distribué pour Hadoop. En plus de s'adapter à des milliards d'objets de différentes tailles, Ozone peut fonctionner efficacement dans des environnements conteneurisés tels que Kubernetes et YARN. Il repose sur une couche de stockage de blocs hautement disponible et répliquée appelée Hadoop Distributed Data Store (HDDS) . [Un extrait. Cliquez pour en savoir plus.]
- Sous-marin Hadoop :Un moteur d'apprentissage automatique pour Hadoop. Il s'agit d'un projet qui permet à un ingénieur infra / data scientist d'exécuter des applications d'apprentissage en profondeur (Tensorflow, Pytorch, etc.) sur une plate-forme de gestion de ressources (comme YARN). [Un extrait. Cliquez pour en savoir plus.]
Conclusion
Hadoop a eu un impact significatif sur les recherches, dans le processus de journalisation, dans l'entreposage de données et l'analyse de Big Data de nombreuses grandes organisations, telles qu'Amazon, Facebook, Yahoo, etc. Il s'agit d'une solution unique pour stocker une quantité massive de données de toute nature, accompagnée d'une puissance de traitement évolutive pour exploiter des tâches simultanées pratiquement illimitées. En quelques mots, la popularité d'Hadoop doit beaucoup à sa capacité de tolérance aux pannes, d'évolutivité, de rentabilité et de rapidité.