Lambda Twitter - Streaming de Données Twitter en Temps Réel
Introduction
Lambda Twitter implémente l'architecture Lambda pour le traitement de flux Twitter en temps réel. C'est un projet d'apprentissage des concepts de streaming distribué avec Apache Kafka.
L'Architecture Lambda
Cette architecture combine trois couches :
Batch Layer
Traitement périodique de grandes quantités de données historiques. Vue complète mais avec latence.
Speed Layer
Traitement en temps réel des nouveaux événements. Résultats immédiats mais potentiellement incomplets.
Serving Layer
Fusion des résultats des deux couches pour offrir une vue à la fois complète et à jour.
Stack Technique
Apache Kafka
Le cœur du système de streaming :
- Broker : Serveur de messages
- Topics : Canaux de données (ex: "tweets", "users")
- Producers : Injectent les tweets depuis l'API Twitter
- Consumers : Traitent les messages
Twitter4j
Bibliothèque Java pour interagir avec l'API Twitter Streaming :
- Connexion à la Streaming API
- Filtrage par mots-clés ou utilisateurs
- Gestion des rate limits
Flux de Données
- Twitter Streaming API envoie les tweets en continu
- Producer Java reçoit et formate les données
- Kafka Topic stocke les messages
- Consumer traite et analyse les tweets
- Stockage/Visualisation des résultats
Déploiement Docker
L'infrastructure est conteneurisée :
- Conteneur Kafka + Zookeeper
- Conteneur Producer (Twitter → Kafka)
- Conteneur Consumer (traitement)
Utilisation
# Installer Docker
./install_docker.sh
# Démarrer la plateforme
./start.sh
# Arrêter et nettoyer
./rm.sh
Concepts Appris
- Streaming de données distribué
- Architecture Lambda
- Apache Kafka en pratique
- API Twitter Streaming
- Conteneurisation de pipelines de données
Projet développé à l'ESIGELEC pour l'apprentissage des architectures Big Data temps réel.