Tutoriel Apache Flume: Flux de données Twitter



Ce blog de didacticiel Apache Flume explique les principes de base d'Apache Flume et ses fonctionnalités. Il présentera également le streaming Twitter à l'aide d'Apache Flume.

Dans ce blog du didacticiel Apache Flume, nous allons comprendre comment Flume aide à diffuser des données à partir de diverses sources. Mais avant cela, comprenons l'importance de l'ingestion de données. L'ingestion de données est l'étape initiale et importante pour traiter et analyser les données, puis en tirer des valeurs commerciales. Il existe plusieurs sources à partir desquelles les données sont collectées dans une organisation.

Parlons d'une autre raison importante pour laquelle Flume est devenu si populaire. J'espère que vous connaissez peut-être , qui est énormément utilisé dans l'industrie car il peut stocker toutes sortes de données. Flume peut facilement s'intégrer à Hadoop et vider les données non structurées et semi-structurées sur HDFS, complétant ainsi la puissance de Hadoop. C'est pourquoi Apache Flume est une partie importante de l'écosystème Hadoop.





Dans ce blog de didacticiel Apache Flume, nous couvrirons:



Nous commencerons ce didacticiel Flume en discutant de ce qu'est Apache Flume. Ensuite, nous comprendrons les avantages de l'utilisation de Flume.

Tutoriel Apache Flume: Introduction à Apache Flume

Logo Apache Flume - Tutoriel Apache Flume - EdurekaApache Flume est un outil d'ingestion de données dans HDFS. Il collecte, agrège et transporte une grande quantité de données en continu telles que des fichiers journaux, des événements de diverses sources comme le trafic réseau, les médias sociaux, les messages électroniques, etc. vers HDFS.Flume est un produit hautement fiable et distribué.

L’idée principale derrière la conception du Flume est de capturer les données en streaming de divers serveurs Web vers HDFS. Il possède une architecture simple et flexible basée sur des flux de données en continu. Il est tolérant aux pannes et fournit un mécanisme de fiabilité pour la tolérance aux pannes et la récupération des pannes.



Après avoir compris ce qu'est Flume, avançons maintenant dans ce blog du didacticiel Flume et comprenons les avantages d'Apache Flume. Ensuite, nous examinerons l'architecture de Flume et essayerons de comprendre son fonctionnement fondamental.

est un tableau un objet en java

Tutoriel Apache Flume: Avantages d'Apache Flume

Il existe plusieurs avantages d'Apache Flume, ce qui en fait un meilleur choix par rapport aux autres. Les avantages sont:

  • Flume est évolutif, fiable, tolérant aux pannes et personnalisable pour différentes sources et puits.
  • Apache Flume peut stocker des données dans des magasins centralisés (c'est-à-dire que les données sont fournies à partir d'un seul magasin) comme HBase et HDFS.
  • Flume est évolutif horizontalement.
  • Si le taux de lecture dépasse le taux d'écriture, Flume fournit un flux constant de données entre les opérations de lecture et d'écriture.
  • Flume fournit une livraison de messages fiable. Les transactions dans Flume sont basées sur des canaux où deux transactions (un expéditeur et un récepteur) sont gérées pour chaque message.
  • En utilisant Flume, nous pouvons ingérer des données de plusieurs serveurs dans Hadoop.
  • Cela nous donne une solution fiable et distribuée et nous aide à collecter, agréger et déplacer une grande quantité d'ensembles de données comme Facebook, Twitter et les sites Web de commerce électronique.
  • Cela nous aide à ingérer des données de streaming en ligne à partir de diverses sources telles que le trafic réseau, les médias sociaux, les messages électroniques, les fichiers journaux, etc. dans HDFS.
  • Il prend en charge un large éventail de types de sources et de destinations.

L'architecture est celle qui permet à Apache Flume de bénéficier de ces avantages. Maintenant, comme nous connaissons les avantages d'Apache Flume, allons de l'avant et comprenons l'architecture d'Apache Flume.

Tutoriel Apache Flume: Architecture de Flume

Maintenant, comprenons l'architecture de Flume à partir du diagramme ci-dessous:

Il existe un agent Flume qui ingère les données en continu de diverses sources de données vers HDFS. À partir du diagramme, vous pouvez facilement comprendre que le serveur Web indique la source de données. Twitter fait partie des sources les plus connues de streaming de données.

L'agent de canal a 3 composants: source, puits et canal.

    1. La source : Il accepte les données du flux entrant et stocke les données dans le canal.
    2. Canal : En général, la vitesse de lecture est plus rapide que la vitesse d'écriture. Ainsi, nous avons besoin d'un tampon pour correspondre à la différence de vitesse de lecture et d'écriture. Fondamentalement, le tampon agit comme un stockage intermédiaire qui stocke les données transférées temporairement et empêche donc la perte de données. De même, le canal sert de stockage local ou de stockage temporaire entre la source de données et les données persistantes dans le HDFS.
    3. Évier : Ensuite, notre dernier composant, à savoir Sink, collecte les données du canal et valide ou écrit les données dans le HDFS de manière permanente.

Maintenant que nous savons comment fonctionne Apache Flume, jetons un coup d'œil à un outil pratique où nous allons intégrer les données Twitter et les stocker dans le HDFS.

Tutoriel Apache Flume: Streaming de données Twitter

Dans cette pratique, nous diffuserons les données de Twitter en utilisant Flume, puis les stockerons dans HDFS, comme indiqué dans l'image ci-dessous.

La première étape consiste à créer une application Twitter. Pour cela, vous devez d'abord vous rendre sur cette url: https://apps.twitter.com/ et connectez-vous à votre compte Twitter. Allez à créer l'onglet d'application comme indiqué dans l'image ci-dessous.

Ensuite, créez une application comme indiqué dans l'image ci-dessous.

Après avoir créé cette application, vous trouverez le jeton Key & Access. Copiez la clé et le jeton d'accès. Nous passerons ces jetons dans notre fichier de configuration Flume pour nous connecter à cette application.

Créez maintenant un fichier flume.conf dans le répertoire racine du flume comme indiqué dans l'image ci-dessous. Comme nous l'avons vu, dans l'architecture du Flume, nous allons configurer notre source, notre puits et notre canal. Notre source est Twitter, d'où nous diffusons les données et notre récepteur est HDFS, où nous écrivons les données.

Dans la configuration source, nous transmettons le type de source Twitter comme org.apache.flume.source.twitter.TwitterSource. Ensuite, nous transmettons les quatre jetons que nous avons reçus de Twitter. Enfin, dans la configuration source, nous transmettons les mots-clés sur lesquels nous allons récupérer les tweets.

Dans la configuration Sink, nous allons configurer les propriétés HDFS. Nous allons définir le chemin HDFS, le format d'écriture, le type de fichier, la taille du lot, etc. Enfin, nous allons définir le canal mémoire comme indiqué dans l'image ci-dessous.

Maintenant, nous sommes tous prêts pour l'exécution. Continuons et exécutons cette commande:

$ FLUME_HOME / bin / flume-ng agent --conf ./conf/ -f $ FLUME_HOME / flume.conf

Après avoir exécuté cette commande pendant un certain temps, vous pouvez quitter le terminal en utilisant CTRL + C. Ensuite, vous pouvez continuer dans votre répertoire Hadoop et vérifier le chemin mentionné, que le fichier soit créé ou non.

mémoire de pile et de tas en java

Téléchargez le fichier et ouvrez-le. Vous obtiendrez quelque chose comme indiqué dans l'image ci-dessous.

J'espère que ce blog est informatif et a une valeur ajoutée pour vous. Si vous souhaitez en savoir plus, vous pouvez passer par ceci qui vous informe sur le Big Data et comment Hadoop résout les défis liés au Big Data.

Maintenant que vous avez compris Apache Flume, consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation à la certification Edureka Big Data Hadoop aide les apprenants à devenir des experts dans les domaines HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume et Sqoop en utilisant des cas d'utilisation en temps réel sur le commerce de détail, les médias sociaux, l'aviation, le tourisme et la finance.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires et nous vous recontacterons.