

## MapReduce - REDUCE 

### Le WORKER qui exécute la phase de reduce.

Modifiez le WORKER pour qu'il prépare la phase de reduce en regroupant les clés avec le même hash, en calculant le reduce pour chacune des clés 

### Un MASTER qui lance et attend la fin de la phase de reduce .

Modifiez le MASTER pour qu'il lance la phase de reduce une fois que la phase de shuffle est terminée, sur plusieurs machines et affiche "REDUCE FINISHED".

Pour bien synchroniser le MASTER avec les WORKERS, veillez à afficher "REDUCE 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 SLAVEs se terminent correctement.

### Un MASTER qui chronomètre les phases.

Modifiez le MASTER pour qu'il chronomètre les différentes phases MAP, SHUFFLE, REDUCE et pour qu'il affiche le temps de chacune des phases.

Testez sur l'exemple de départ avec les trois splits suivants:

S0.txt S1.txt S2.txt.\
S0.txt contient:

Deer Beer River

S1.txt contient:

Car Car River

S2.txt contient:

Deer Car Beer

Quelle est la phase qui prend le plus de temps ? Quelle est la phase la plus rapide ?