Introduction aux composants Hadoop

Les composants Hadoop sont principalement HDFS, Map Reduce, Yarn. Aujourd'hui, nous vivons dans une ère numérique où le taux de production de données est très élevé environ nous produisons 2, 5 quintillions de données par jour. Bien que la capacité de stockage des disques augmente, le taux de recherche n'a pas augmenté pour ce volume de données. Pour surmonter cela, nous devons lire les données en parallèle, pour y parvenir dans Hadoop, nous avons un HDFS (Hadoop Distributed File System) où les jeux de données sont stockés sous forme de blocs dans HDFS (pour plus de détails, reportez-vous à la section HDFS) pour lire les données en parallèle et atteindre taux de traitement plus élevé. Le traitement des données est effectué pour récupérer ou prévoir des informations significatives ou pour obtenir des tendances ou des modèles. Le processus MapReduce est utilisé pour effectuer l'obtention des informations souhaitées. Map et Reduce sont les deux phases différentes du traitement des données.

Composants majeurs de Hadoop

Les principaux composants de Hadoop sont décrits ci-dessous:

1. Système de fichiers distribués Hadoop (HDFS)

HDFS est la couche de stockage pour le Big Data, c'est un cluster de nombreuses machines, les données stockées peuvent être utilisées pour le traitement à l'aide de Hadoop. Une fois les données transmises à HDFS, nous pouvons les traiter à tout moment, jusqu'au moment où nous traitons les données, elles résideront dans HDFS jusqu'à ce que nous supprimions les fichiers manuellement. HDFS stocke les données sous forme de bloc, la taille minimale du bloc est de 128 Mo dans Hadoop 2.x et pour 1.x, il était de 64 Mo. HDFS réplique les blocs pour les données disponibles si les données sont stockées dans une machine et si la machine tombe en panne, les données ne sont pas perdues, mais pour les éviter, les données sont répliquées sur différentes machines. Le facteur de réplication par défaut est 3 et nous pouvons changer dans HDFS-site.xml ou en utilisant la commande Hadoop fs -strep -w 3 / dir en répliquant nous avons les blocs sur différentes machines pour une haute disponibilité.
HDFS est une architecture maître-esclave, c'est NameNode comme maître et Data Node comme esclave. NameNode est la machine où toutes les métadonnées sont stockées de tous les blocs stockés dans le DataNode.

2. FILS

YARN a été introduit dans Hadoop 2.x, avant que Hadoop ne dispose d'un JobTracker pour la gestion des ressources. Job Tracker était le maître et il avait un Task Tracker comme esclave. Job Tracker était celui qui se chargeait de planifier les tâches et d'allouer les ressources. Le traqueur de tâches était utilisé pour gérer les tâches de mappage et de réduction et le statut était mis à jour périodiquement pour le traqueur de travaux. Avec un type de gestionnaire de ressources, il avait une limite d'évolutivité et l'exécution simultanée des tâches était également limitée. Ces problèmes ont été traités dans YARN et il s'est occupé de l'allocation des ressources et de la planification des travaux sur un cluster. L'exécution d'une tâche Map Reduce a besoin de ressources dans un cluster, pour obtenir les ressources allouées à la tâche que YARN aide. YARN détermine quel travail est effectué et quelle machine il est effectué. Il a toutes les informations des cœurs et de la mémoire disponibles dans le cluster, il suit la consommation de mémoire dans le cluster. Il interagit avec le NameNode sur les données où il réside pour prendre la décision sur l'allocation des ressources.

3. MapReduce

L'écosystème Hadoop est une façon rentable, évolutive et flexible de travailler avec des ensembles de données aussi volumineux. Hadoop est un framework qui utilise un modèle de programmation particulier, appelé MapReduce, pour diviser les tâches de calcul en blocs qui peuvent être distribués autour d'un cluster de machines de base à l'aide de Hadoop Distributed Filesystem (HDFS).

MapReduce est deux tâches différentes: Map et Reduce, Map précède la phase de réduction. Comme son nom l'indique, la phase Carte mappe les données en paires clé-valeur, car nous savons tous que Hadoop utilise des valeurs clés pour le traitement. La phase de réduction est la phase où nous avons la logique réelle à mettre en œuvre. En dehors de ces deux phases, il implémente également la phase de shuffle et de tri.

1. Mappeur

Le mappeur est la classe où le fichier d'entrée est converti en paire de clés et de valeurs pour un traitement ultérieur. Lors de la lecture des données, elles sont lues dans les valeurs de clé uniquement lorsque la clé est le décalage en bits et la valeur est l'enregistrement entier.

Par exemple, nous avons un fichier Diary.txt en ce que nous avons écrit deux lignes, c'est-à-dire deux enregistrements.

C'est une merveilleuse journée que nous devrions apprécier ici, les décalages pour `` t '' sont 0 et pour `` w '', c'est 33 (les espaces blancs sont également considérés comme un caractère) donc, le mappeur lira les données sous forme de paire clé-valeur, comme (clé, valeur), (0, c'est une merveilleuse journée), (33, nous devrions en profiter)

2. Réducteur

Reducer est la classe qui accepte les clés et les valeurs de la sortie de la phase des mappeurs. Les clés et les valeurs générées par le mappeur sont acceptées en entrée dans le réducteur pour un traitement ultérieur. Le réducteur accepte les données de plusieurs mappeurs. Le réducteur agrège ces données intermédiaires en un nombre réduit de clés et de valeurs qui est la sortie finale, nous le verrons dans l'exemple.

3. Chauffeur

Outre la classe mapper et reducer, nous avons besoin d'une classe de plus, la classe Driver. Ce code est nécessaire pour MapReduce car il est le pont entre le framework et la logique implémentée. Il spécifie la configuration, le chemin des données d'entrée, le chemin de stockage de sortie et, plus important encore, les classes de mappeur et de réduction qui doivent être implémentées et de nombreuses autres configurations doivent être définies dans cette classe. Par exemple, dans la classe de pilote, nous pouvons spécifier le séparateur pour le fichier de sortie comme indiqué dans la classe de pilote de l'exemple ci-dessous.

Exemple

Considérez que nous avons un ensemble de données d'agence de voyage, nous devons maintenant calculer à partir des données combien de personnes choisissent de voyager vers une destination particulière. Pour ce faire, nous devrons prendre la destination comme clé et pour le comptage, nous prendrons la valeur comme 1. Donc, dans la phase de mappage, nous allons mapper la destination à la valeur 1. Maintenant, en phase de mélange et de tri après le mappeur, il associera toutes les valeurs à une clé particulière. Par exemple, si nous avons une destination comme MAA, nous avons mappé 1, nous avons également 2 occurrences après le brassage et le tri, nous obtiendrons MAA, (1, 1) où (1, 1) est la valeur. Maintenant dans la phase de réduction, nous avons déjà une logique implémentée dans la phase de réduction pour ajouter les valeurs pour obtenir le nombre total de billets réservés pour la destination. C'est le flux de MapReduce.

Ci-dessous, la capture d'écran du programme implémenté pour l'exemple ci-dessus.

1. Classe de conducteur

2. Classe Mapper

3. Classe de réduction

Exécution de Hadoop

Pour l'exécution de Hadoop, nous devons d'abord construire le pot, puis nous pouvons exécuter en utilisant la commande ci-dessous Hadoop jar eample.jar /input.txt /output.txt

Conclusion

Ici, nous avons discuté des composants principaux de Hadoop comme HDFS, Map Reduce et YARN. Il s'agit d'un cadre informatique de cluster distribué qui aide à stocker et à traiter les données et à effectuer l'analyse requise sur les données capturées. Hadoop est flexible, fiable en termes de données car les données sont répliquées et évolutives, c'est-à-dire que nous pouvons ajouter plus de machines au cluster pour le stockage et le traitement des données.

Articles recommandés

Cela a été un guide pour les composants Hadoop. Ici, nous avons discuté des composants principaux de Hadoop avec des exemples. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Introduction à l'architecture JDBC
  2. Qu'est-ce que le cluster Hadoop?
  3. Qu'est-ce que MapReduce dans Hadoop?
  4. Qu'est-ce que le Big Data et Hadoop
  5. Commandes Hadoop fs

Catégorie: