Traitement des données dans Hadoop : Explication des composants Hadoop [2022]
Publié: 2021-01-03Avec la croissance exponentielle du World Wide Web au fil des ans, les données générées ont également augmenté de façon exponentielle. Cela a conduit à la création d'une quantité massive de données et il était difficile de traiter et de stocker cette énorme quantité de données avec les systèmes de bases de données relationnelles traditionnels.
De plus, les données créées n'étaient pas seulement sous forme structurée mais également sous forme non structurée comme des vidéos, des images, etc. Ce type de données ne peut pas être traité par des bases de données relationnelles. Pour contrer ces problèmes, Hadoop a vu le jour.
Avant de nous plonger dans le traitement des données de Hadoop, donnons un aperçu de Hadoop et de ses composants. Apache Hadoop est un framework qui permet le stockage et le traitement d'énormes quantités de données de manière rapide et efficace. Il peut être utilisé pour stocker d'énormes quantités de données structurées et non structurées. En savoir plus sur l'écosystème et les composants hadoop.
Les éléments de base de Hadoop sont les suivants : –
Table des matières
Blocs de construction de Hadoop
1. HDFS (La couche de stockage)
Comme son nom l'indique, Hadoop Distributed File System est la couche de stockage de Hadoop et est responsable du stockage des données dans un environnement distribué (configuration maître et esclave). Il divise les données en plusieurs blocs de données et les stocke sur différents nœuds de données. Ces blocs de données sont également répliqués sur différents nœuds de données pour éviter la perte de données lorsque l'un des nœuds tombe en panne.
Il a deux processus principaux en cours d'exécution pour le traitement des données : -

une. NomNoeud
Il s'exécute sur la machine maître. Il enregistre les emplacements de tous les fichiers stockés dans le système de fichiers et suit l'emplacement des données dans le cluster, c'est-à-dire qu'il stocke les métadonnées des fichiers. Lorsque les applications clientes veulent effectuer certaines opérations sur les données, elles interagissent avec le NameNode. Lorsque le NameNode reçoit la demande, il répond en renvoyant une liste de serveurs de nœuds de données où résident les données requises.
b. DataNode
Ce processus s'exécute sur chaque machine esclave. L'une de ses fonctionnalités est de stocker chaque bloc de données HDFS dans un fichier séparé dans son système de fichiers local. En d'autres termes, il contient les données réelles sous forme de blocs. Il envoie périodiquement des signaux de pulsation et attend la demande du NameNode pour accéder aux données.
2. MapReduce (La couche de traitement)
Il s'agit d'une technique de programmation basée sur Java qui est utilisée en plus du framework Hadoop pour un traitement plus rapide d'énormes quantités de données. Il traite ces énormes données dans un environnement distribué à l'aide de nombreux nœuds de données, ce qui permet un traitement parallèle et une exécution plus rapide des opérations de manière tolérante aux pannes.
Une tâche MapReduce divise l'ensemble de données en plusieurs blocs de données qui sont ensuite convertis en paires clé-valeur afin d'être traités par les mappeurs. Le format brut des données peut ne pas convenir au traitement. Ainsi, les données d'entrée compatibles avec la phase cartographique sont générées à l'aide de la fonction InputSplit et de RecordReader.
InputSplit est la représentation logique des données qui doivent être traitées par un mappeur individuel. RecordReader convertit ces fractionnements en enregistrements qui prennent la forme de paires clé-valeur. Il convertit essentiellement la représentation orientée octet de l'entrée en une représentation orientée enregistrement.
Ces enregistrements sont ensuite transmis aux mappeurs pour un traitement ultérieur des données. Les tâches MapReduce se composent principalement de trois phases, à savoir la phase Map, la phase Shuffle et la phase Reduce.
une. Phase de carte
C'est la première phase du traitement des données. La tâche principale de la phase de mappage consiste à traiter chaque entrée du RecordReader et à la convertir en tuples intermédiaires (paires clé-valeur). Cette sortie intermédiaire est stockée sur le disque local par les mappeurs.
Les valeurs de ces paires clé-valeur peuvent différer de celles reçues en entrée du RecordReader. La phase de carte peut également contenir des combinateurs également appelés réducteurs locaux. Ils effectuent des agrégations sur les données, mais uniquement dans le cadre d'un mappeur.

Comme les calculs sont effectués sur différents nœuds de données, il est essentiel que toutes les valeurs associées à la même clé soient fusionnées en un seul réducteur. Cette tâche est effectuée par le partitionneur. Il exécute une fonction de hachage sur ces paires clé-valeur pour les fusionner.
Il garantit également que toutes les tâches sont réparties uniformément entre les réducteurs. Les partitionneurs entrent généralement en jeu lorsque nous travaillons avec plus d'un réducteur.
b. Phase de mélange et de tri
Cette phase transfère la sortie intermédiaire obtenue des mappeurs vers les réducteurs. Ce processus est appelé brassage. La sortie des mappeurs est également triée avant de la transférer vers les réducteurs. Le tri est effectué sur la base des clés dans les paires clé-valeur. Cela aide les réducteurs à effectuer les calculs sur les données avant même que toutes les données ne soient reçues et aide finalement à réduire le temps nécessaire aux calculs.
Au fur et à mesure que les clés sont triées, chaque fois que le réducteur obtient une clé différente comme entrée, il commence à effectuer les tâches de réduction sur les données précédemment reçues.
c. Réduire la phase
La sortie de la phase de mappage sert d'entrée à la phase de réduction. Il prend ces paires clé-valeur et leur applique la fonction de réduction pour produire le résultat souhaité. Les clés et les valeurs associées à la clé sont transmises à la fonction reduce pour effectuer certaines opérations.
Nous pouvons filtrer les données ou les combiner pour obtenir la sortie agrégée. Après l'exécution de la fonction reduce, elle peut créer zéro ou plusieurs paires clé-valeur. Ce résultat est réécrit dans le système de fichiers distribué Hadoop.
3. FIL (La couche de gestion)
Yet Another Resource Navigator est le composant de gestion des ressources de Hadoop. Des processus d'arrière-plan s'exécutent sur chaque nœud (le gestionnaire de nœuds sur les machines esclaves et le gestionnaire de ressources sur le nœud maître) qui communiquent entre eux pour l'allocation des ressources. Le gestionnaire de ressources est la pièce maîtresse de la couche YARN qui gère les ressources entre toutes les applications et transmet les demandes au gestionnaire de nœuds.

Le gestionnaire de nœuds surveille l'utilisation des ressources telles que la mémoire, le processeur et le disque de la machine et transmet la même chose au gestionnaire de ressources. Il est installé sur chaque nœud de données et est responsable de l'exécution des tâches sur les nœuds de données.
À lire : Les 10 meilleurs outils Hadoop pour les ingénieurs Big Data
Conclusion
L'ensemble du flux de travail pour le traitement des données sur Hadoop peut être résumé comme suit : -
- InputSplit ; divise logiquement les données qui résident sur HDFS en plusieurs blocs de données. La décision sur la façon de diviser les données est prise par le Inputformat .
- Les données sont converties en paires clé-valeur par RecordReader. RecordReader convertit les données orientées octet en données orientées enregistrement. Ces données servent d'entrée au mappeur.
- Le mappeur, qui n'est rien d'autre qu'une fonction définie par l'utilisateur, traite ces paires clé-valeur et génère des paires clé-valeur intermédiaires pour un traitement ultérieur.
- Ces paires sont réduites localement (dans le cadre d'un mappeur) par les combineurs pour réduire la quantité de données à transférer du mappeur au réducteur.
- Le partitionneur garantit que toutes les valeurs avec la même clé sont fusionnées dans le même réducteur et que les tâches sont réparties uniformément entre les réducteurs.
- Ces paires clé-valeur intermédiaires sont ensuite mélangées aux réducteurs et triées sur la base des clés. Ce résultat est transmis aux réducteurs en tant qu'entrée.
- La fonction de réduction agrège les valeurs de chaque clé et le résultat est stocké dans le HDFS à l'aide de RecordWriter. Avant de les réécrire dans le HDFS, le format dans lequel les données doivent être écrites est décidé par Outputformat .
Si vous souhaitez en savoir plus sur le Big Data, consultez notre programme PG Diploma in Software Development Specialization in Big Data qui est conçu pour les professionnels en activité et fournit plus de 7 études de cas et projets, couvre 14 langages et outils de programmation, pratique pratique ateliers, plus de 400 heures d'apprentissage rigoureux et d'aide au placement dans les meilleures entreprises.
Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.