
## MapReduce - SPLIT et MAP

### Prérequis et documentation pour les questions suivantes :

- connaître l'[architecture de MapReduce](https://www.guru99.com/introduction-to-mapreduce.html)

  ![](./image1.png)

  ![](./image2.png)

### création des splits

Créez trois fichiers correspondants à des "splits" dans le répertoire temporaire. Dans un premier temps, créez ces fichiers manuellement. 

 /tmp/\<votre nom d'utilisateur\>/splits

S0.txt S1.txt S2.txt.\
S0.txt contient:

Deer Beer River

S1.txt contient:

Car Car River

S2.txt contient:

Deer Car Beer


Attention, le répertoire /tmp/\<votre nom d'utilisateur\>/splits doit être créé sur les 3 ordinateurs s'il n'existe pas. 

### Un WORKER qui fait la phase de map

Modifiez le WORKER pour qu'il calcule un map à partir d'un split.

Pour démarrer le calcul lors du déploiement réel du système réparti, vous inventerez un protocole qui permet de signaler au WORKER de commencer à calculer le MAP. Le nom du fichier sera aussi envoyé par le protocole de communication.

### Un MASTER qui lance les WORKERS pour la phase de map.

Modifiez le MASTER pour qu'il lance la phase de map sur plusieurs machines à l'aide d'un protocole et affiche "MAP FINISHED".

Pour bien synchroniser le MASTER avec les WORKERS, veillez à afficher "MAP FINISHED" qu'une fois tous les WORKERS terminés et uniquement quand tous les WORKERS sont terminés, PAS AVANT! Le MASTER doit donc attendre que WORKERS se terminent correctement. Il faut donc que votre protocole contienne une notification de fin du MAP.