Restez à jour avec les dernières tendances technologiques
Rejoignez DataFlair sur Telegram!!
Intégration de Kafka Avec Hadoop
Aujourd’hui, dans ce tutoriel Kafka Hadoop, nous allons discuter de l’intégration de Kafka Hadoop. De plus, nous allons commencer ce tutoriel avec l’introduction de Hadoop. De plus, nous verrons Hadoop Producteur et Hadoop Consommateur dans l’intégration de Kafka avec Hadoop.
Fondamentalement, nous pouvons intégrer Kafka à la technologie Hadoop afin de traiter différents cas d’utilisation, tels que le traitement par lots à l’aide de Hadoop. Ainsi, dans cet article, « Intégration de Kafka Hadoop », nous allons apprendre la procédure pour intégrer Hadoop à Kafka de manière plus simple et efficace. Cependant, avant d’intégrer Kafka à Hadoop, il est important d’apprendre la brève introduction de Hadoop.
Alors, commençons l’intégration de Kafka Hadoop.
Intégration Kafka Hadoop
Qu’est-ce que Hadoop ?
Un cadre de traitement par lots distribué à grande échelle qui permet de paralléliser le traitement des données entre de nombreux nœuds et de relever les défis de l’informatique distribuée, y compris le big data, est ce que nous appelons Hadoop.
Fondamentalement, cela fonctionne sur le principe du framework MapReduce introduit par Google. Il offre une interface simple pour la parallélisation ainsi que la distribution de calculs à grande échelle. De plus, il possède son propre système de fichiers de données distribuées que nous appelons HDFS (Hadoop Distributed File System). Pour comprendre HDFS, il divise les données en petits morceaux (appelés blocs) et les distribue ensuite à tous les nœuds de tout cluster Hadoop typique. De plus, il crée la réplication de ces petites données et les stocke pour s’assurer que les données sont disponibles à partir d’un autre nœud si un nœud est en panne.
Maintenant, voici une image montrant la vue de haut niveau d’un cluster Hadoop multi-nœuds:
Cluster multinode Hadoop
a. Principaux composants de Hadoop
Voici les composants Hadoop:
- Nœud de nom
Un point d’interaction unique pour HDFS est ce que nous appelons Namenode. Comme son travail, il conserve les informations sur les petits morceaux (blocs) de données qui sont répartis entre les nœuds.
- Namenode secondaire
En cas de défaillance d’un nœud de nom, il stocke les journaux d’édition pour restaurer le dernier état mis à jour de HDFS.
- Nœud de données
Il conserve les données réelles distribuées par le namenode en blocs ainsi que la copie répliquée des données d’autres nœuds.
- Job Tracker
Afin de diviser les tâches MapReduce en tâches plus petites, Job Tracker aide.
- Traqueur de tâches
Alors que, pour l’exécution des tâches divisées par le traqueur de tâches, le traqueur de tâches est responsable.
Cependant, assurez-vous que le tracker de tâches et les nœuds de données partagent les mêmes machines.
Vérifiez ce que vous savez sur Hadoop
Intégration de Kafka Hadoop
Afin de construire un pipeline disponible pour le traitement ou la surveillance en temps réel, ainsi que pour charger les données dans des systèmes Hadoop, NoSQL ou d’entreposage de données pour le traitement et les rapports hors ligne, en particulier pour les cas d’utilisation de publication-abonnement en temps réel, nous utilisons Kafka.
a. producteur Hadoop
Afin de publier les données d’un cluster Hadoop vers Kafka, un producteur Hadoop propose un pont que vous pouvez voir dans l’image ci-dessous:
De plus, les sujets Kafka sont considérés comme des URI, pour un producteur Kafka. Cependant, les URI sont spécifiés ci-dessous pour se connecter à un courtier Kafka spécifique:
kafka: //< kafka-broker >/< kafka-topic >
Eh bien, pour obtenir les données de Hadoop, le code du producteur Hadoop suggère deux approches possibles, elles sont:
- En utilisant le script Pig et en écrivant des messages au format Avro
Fondamentalement, pour écrire des données dans un format Avro binaire, les producteurs de Kafka utilisent des scripts Pig, dans cette approche. Ici, chaque ligne fait référence à un seul message. De plus, la classe AvroKafkaStorage choisit le schéma Avro comme premier argument, puis se connecte à l’URI Kafka, afin de pousser les données dans le cluster Kafka. De plus, nous pouvons facilement écrire à plusieurs sujets et courtiers dans le même travail basé sur un script Pig, en utilisant le producteur AvroKafkaStorage.
- Utilisation de la classe Kafka OutputFormat pour les tâches
Maintenant, dans la deuxième méthode, pour publier des données dans le cluster Kafka, la classe Kafka OutputFormat (étend la classe OutputFormat de Hadoop) est utilisée. Ici, en utilisant des méthodes de publication de bas niveau, il publie des messages sous forme d’octets et offre également un contrôle sur la sortie. Bien que, pour écrire un enregistrement (message) dans un cluster Hadoop, la classe Kafka OutputFormat utilise la classe KafkaRecordWriter.
De plus, nous pouvons également configurer les paramètres du producteur Kafka et les informations du courtier Kafka sous la configuration d’une tâche, pour les producteurs Kafka.
b. Consommateur Hadoop
Alors qu’un travail Hadoop qui extrait des données du courtier Kafka et les pousse davantage dans HDFS, est ce que nous appelons un consommateur Hadoop. Cependant, à partir de l’image ci-dessous, vous pouvez voir la position d’un consommateur Kafka dans le modèle d’architecture:
Intégration Kafka Hadoop -Hadoop Consumer
En tant que processus, une tâche Hadoop effectue un chargement parallèle de Kafka vers HDFS ainsi que des mappeurs afin de charger les données qui dépendent du nombre de fichiers dans le répertoire d’entrée. De plus, les données provenant de Kafka et les décalages de sujet mis à jour se trouvent dans le répertoire de sortie. De plus, à la fin de la tâche de cartographie, les mappeurs individuels écrivent le décalage du dernier message consommé sur HDFS. Cependant, chaque mappeur redémarre simplement à partir des décalages stockés dans HDFS, si une tâche échoue et que les tâches sont redémarrées.
Donc, tout cela était dans l’intégration de Kafka Hadoop. J’espère que vous aimez notre explication.