TP : Apache Flink
Hamza - Ilyas - Mouad - Ali - Marouane
12/19/2024
Objectifs du TP
— Découvrir Apache Flink via son environnement de développement
— Comprendre et manipuler les DataStreams
— Différencier les types de transformations
— Visualiser le plan d’exécution de Flink
1 Installation et Configuration
1.1 Installation
Pour simplifier l’installation, nous utiliserons un script Python fourni qui automatise le
processus. Le script gère :
— La vérification de Java
— Le téléchargement de Flink
— La configuration des variables d’environnement
— La création de données exemple
Procédure d’installation :
1. Téléchargez le script [Link]
2. Exécutez le script :
1 python3 flink . py # Windows , Linux
3. Vérifiez l’installation en accédant à l’interface web : [Link]
2 Premiers pas avec Flink
2.1 Création du projet
Créez un nouveau projet Maven avec les dépendances suivantes :
1 < dependency >
2 < groupId > org . apache . flink </ groupId >
3 < artifactId > flink - streaming - java </ artifactId >
4 < version > 1.17.2 </ version >
5 </ dependency >
6 < dependency >
1
7 < groupId > org . apache . flink </ groupId >
8 < artifactId > flink - clients </ artifactId >
9 < version > 1.17.2 </ version >
10 </ dependency >
3 Manipulation des DataStreams
3.1 Exercice 1 : Création et transformations basiques
Créez une classe FlinkExercice1 avec les éléments suivants :
1. Créez un DataStream à partir de la collection suivante :
1 " Bonjour les etudiants de l ’ ENSA "
2 " Bienvenue dans le monde de Flink "
3 " Decouvrons le streaming "
4 " Bonne formation Flink "
2. Appliquez les transformations suivantes :
(a) Filtrez les phrases de plus de 20 caractères
(b) Comptez le nombre de mots dans chaque phrase
(c) Affichez les résultats
3.2 Exercice 2 : Fenêtres et agrégations
Dans une nouvelle classe FlinkExercice2 :
1. Créez un stream de nombres entiers (1 à 100)
2. Implémentez :
(a) Une fenêtre glissante de 5 secondes
(b) Le calcul de la moyenne dans chaque fenêtre
(c) L’affichage des résultats
4 Sources et Sinks
4.1 Exercice 3 : Lecture et écriture de fichiers
Créez une classe FlinkExercice3 qui :
1. Lit le fichier [Link] créé lors de l’installation
2. Applique les transformations suivantes :
(a) Conversion en majuscules
(b) Filtrage des lignes contenant ”Flink”
(c) Comptage des occurrences de chaque mot
3. Écrit les résultats dans un fichier [Link]
2
5 Question Bonus - FOR FUN :)
Implémentez un détecteur de motifs simple qui :
1. Détecte une séquence de deux événements consécutifs
2. Le premier contient le mot ”Flink”
3. Le second contient le mot ”formation”
4. Utilise la bibliothèque CEP (Complex Event Processing) de Flink
Remarques importantes
— Durée estimée : 2 heures
— Le TP peut être réalisé individuellement ou en binôme ou meme trinome en cas de panne :(
— N’hésitez pas à consulter la documentation officielle de Flink
— L’interface web de Flink ([Link] est un outil précieux pour le débogage