1.
Mise en place de l'infrastructure Clustérisée
Nous avons défini une architecture distribuée composée de trois nœuds Cassandra (cassandra1,
cassandra2, cassandra3). Cette configuration assure la redondance des données. Le fichier docker-
[Link] orchestre ces conteneurs, définit les réseaux virtuels et configure les variables
d'environnement nécessaires au cluster (comme CASSANDRA_SEEDS pour la découverte des nœuds).
Le déploiement est automatisé via Docker. Les logs montrent l'initialisation des trois instances et leur
mise en réseau (Gossip Protocol), confirmant que le cluster est opérationnel.
2. Modélisation NoSQL et Schéma de données
Création du Keyspace bemtech avec une stratégie de réplication SimpleStrategy et un facteur de
réplication de 3 (replication_factor': 3). Cela garantit que chaque donnée est copiée sur les trois
nœuds du serveur, assurant une tolérance aux pannes maximale." Note technique (Bonus) : Le
warning visible sur la capture indique que lors de la commande, les autres nœuds finissaient de
rejoindre le cluster. La cohérence s'est stabilisée quelques secondes après
Nous avons structuré la base avec quatre tables principales : etudiants, cours, notes et examens. Pour
la table notes, nous avons utilisé une Clé Primaire composée (PRIMARY KEY (etudiants_id, cours_id)),
ce qui permet des requêtes performantes pour récupérer les notes d'un étudiant spécifique.
Insertion des données de test via CQL (Cassandra Query Language). La requête SELECT finale
confirme que les données sont bien persistées et structurées correctement dans le cluster.
3. Analytics et Intégration Applicative
Développement d'un script d'automatisation ([Link]) utilisant le driver cassandra-driver et la
librairie pandas. Ce script se connecte au cluster, extrait les données brutes et calcule
automatiquement la moyenne des étudiants.
Lors du développement, nous avons rencontré une incompatibilité critique avec la version Alpha de
Python (3.14). Nous avons diagnostiqué le problème et migré vers une version stable (Python 3.11).
La capture montre l'installation spécifique des dépendances sur l'environnement 3.11 (py -3.11 -m
pip...), démontrant notre capacité à gérer les environnements d'exécution complexes.
Exécution réussie du Dashboard. Le script affiche correctement l'étudiant 'Moussa DIALLO' et sa
moyenne calculée (16.5), validant la chaîne complète de traitement de la donnée.
4. Maintenance, Sauvegarde et Résilience (Crash Test)
Réalisation d'une sauvegarde à chaud (Snapshot) via la commande nodetool snapshot. Cette
opération sécurise les données sur le disque sans interrompre le service, une procédure essentielle
en production.
Pour valider la robustesse du système (Niveau Expert), nous avons simulé une panne majeure en
arrêtant brutalement le nœud n°3 (docker stop cassandra3). Malgré cette panne, le script Python a
continué de fonctionner et d'afficher les données correctes. Cela prouve que les nœuds restants (1 et
2) ont pris le relais grâce au facteur de réplication de 3.
Redémarrage du nœud défaillant. La commande docker ps finale montre un retour à la normale avec
les 3 nœuds actifs (Up), confirmant la capacité d'auto-guérison du cluster.
e projet a permis de valider la mise en place d'une architecture Big Data résiliente, capable de
survivre à des pannes matérielles tout en maintenant l'intégrité et la disponibilité des données
critiques.