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

  1. Twitter Streaming API envoie les tweets en continu
  2. Producer Java reçoit et formate les données
  3. Kafka Topic stocke les messages
  4. Consumer traite et analyse les tweets
  5. 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.