Map-‐Reduce

Transcription

Map-‐Reduce
TILE – E. Pacitti
Polytech’IG5
Map-­‐Reduce Le but de ce TP et de vous familiariser avec les primitives Map-­‐Reduce vues en cours dans le contexte MongoDB et Hadoop. Il est demandé de relire le support de cours pour faire un rappel. Pour MongoDB certaines bases de JavaScript sont nécessaires. Si vous n’êtes pas encore au point, vous pouvez en profiter pour vous familiariser avec des documents disponibles sur le Web. MongoDB 1) Relisez les supports de cours MongoDB vue en IG4 ou lisez les documents disponibles en http://docs.mongodb.org/manual/ 2) Focaliser sur les aspects Map-­‐Reduce. Exécuter des exemples simples que vous trouverez disponibles sur le site (http://docs.mongodb.org/manual/core/map-­‐
reduce/). Créer des collections si nécessaires. 3) Simuler/Implémenter une requête de select emp.name from emp group by ville. Il va falloir créer un jeu de données (15 tuples (ou documents) suffisent). 4) A partir du jeu de données movieslens, compter le nombre de films qu'il y a pour chaque genre: comédies, action, etc. Vous allez avoir besoin : a. du driver java pour mongo http://docs.mongodb.org/ecosystem/drivers/java/. b. de charger le jeu de données movieslens dans une collection mongo. Pour cela il faut créer un serveur mongo (voir exemples dans le site). Rappel : dans le TP précèdent (Lucene) vous avez codé une boucle qui itérait sur chaque ligne du fichier movieslens. Pour chaque ligne vous avez crée un document lucene, et ajouté chaque document lucene dans le moteur lucene. Pour mongoDB, c'est la même chose sauf qu'on crée un document mongo (DBObject) et qu'on insère ce document dans MongoDB. Rappel : Schémas : Movies : ["_id", "title","genres"]. _id est généré automatiquement par mongo, title est un string, et genres un tableau de string Users qui contient les utilisateurs qui ont noté les films. Elle a la forme suivante : Users ["_id","gender","age","occupation","zip code","sharedmovies"] sharedmovies, est une liste d'id de movies.