SlideShare une entreprise Scribd logo
Institut National des Sciences Appliquées et de Technologie Tunisie
Big Data
2015-2016
TP2- DESIGN PATTERNS MAP-
REDUCE
Dr. Lilia SFAXI
Objectifs du TP : Encore plus d’exercices sur Map-Reduce, cette fois ci en respectant
les différents patrons de conception.
TP2 : Design Patterns Map-Reduce
Page 2
I. Rappel sur les Design Patterns Map Reduce
Les Patrons de Conception Map Reduce (ou plus communément les Design Patterns) permettent
d’aider l’utilisateur à savoir QUAND utiliser Map-Reduce pour résoudre ses problèmes.
Chacun de ces patrons représente une classe de problèmes récurrents pour ceux qui manipulent
les Big Data. Ce qui est utile, car on peut ainsi appliquer une solution standardisée et unifiée pour
chacune de nos difficultés.
Les Design Patterns les plus utilisés sont:
- Les Patrons de Filtrage
- Les Patrons de Récapitulation
- Les Patrons Structurels
Ce TP est largement inspiré du cours Introduction to Hadoop and MapReduce, réalisé par Cloudera.
II. Patrons de Filtrage : Filtrage Simple
Les Patrons de filtrage permettent de sélectionner certains enregistrements, parmi la totalité des
enregistrements existants dans votre source de données, respectant un critère donné.
Dans cette partie, nous travaillons sur les données d’un forum. Ces données ont la forme suivante:
Id title tagnames author_id body node_type parent_id …
On s’intéresse au 5ème champs, soit le corps du message. Nous désirons dans cet exercice
extraire les posts les plus courts du forum, soit les posts dont le corps contient uniquement une
phrase. Une phrase est un texte qui, soit ne contient aucun signe de ponctuation parmi “ . ! ? ”, soit
seulement l’un d’entre eux comme dernier caractère. Les nouvelles lignes ne sont pas prises en
considération.
TP2 : Design Patterns Map-Reduce
Page 3
Activité 1. Les données source se trouvent dans le fichier forum_data.tar.gz fourni par votre
enseignante.
- Décompresser ce fichier : tar zxvf forum_data.tar.gz
- On s’intéresse au fichier forum_node.tsv. Visualiser les premières lignes de ce fichier pour
voir la structure complète des données.
- Écrire et tester un Mapper permettant d’extraire uniquement les posts d’une phrase ou
moins.
- Écrire et tester un Reducer permettant de compter le nombre de posts.
- Combien y’a-t-il de posts avec une seule phrase ou moins?
III. Patrons de Récapitulation
Ces patrons vous aident à avoir une compréhension globale et de haut niveau de vos données.
III.1 Index
Nous nous proposons pour cet exercice de créer un index pour nos données, c’est à dire un fichier
permettant d’afficher pour chaque mot, dans quels posts du forum est-ce qu’il a été mentionné, et
combien de fois.
TP2 : Design Patterns Map-Reduce
Page 4
Activité 2.
- Écrire et tester un Mapper permettant d’extraire les différents mots d’un post (les mots
sont séparés par des caractères d’espacement, ou par les caractères . ! ? : ; “ ( ) < > [ ] #
$ = - / ), puis de les afficher dans des lignes séparées, avec le node_id dans lequel ils se
trouvent.
- Écrire et tester un Reducer permettant de donner, pour chacun des mots, le nombre
d’occurrences, ainsi que la liste des node_id dans lesquels il apparaît.
- Tester le job Hadoop uniquement sur les 10000 premières lignes du fichier forum_node. (le
job exécuté sur toutes les données prend trop de temps)
o Combien de fois est-ce que le mot difficult apparaît-il?
o Donner la liste des noeuds dans lesquels apparaît le mot difficulty.
III.2 Moyenne
On s’intéresse dans cette partie à calculer la moyenne des ventes chaque jour de la semaine
PS : pour extraire le jour de la semaine d’une date avec Python, utiliser l’instruction suivante:
weekday = datetime.strptime(date,”%Y-%m-%d”).weekday()
Activité 3.
- Écrire et tester un programme MapReduce qui parcourt le fichier purchases.txt pour
extraire la moyenne des ventes pour chaque jour de la semaine.
- Quelle est la valeur moyenne des ventes le Dimanche (Sunday)?
III.3 Combiner
Utiliser un combiner permet de faire des réductions sur le nœud Mapper avant d’envoyer le résultat
au Reducer, ce qui diminue considérablement le trafic sur le réseau, ainsi que le travail du Reducer.
TP2 : Design Patterns Map-Reduce
Page 5
Pour faire cela, suivre les étapes suivantes:
- Ouvrir le fichier .bashrc
- Ajouter un nouveau raccourci de commande run_mapreduce_combiner en copiant la
fonction run_mapreduce que vous avez créé la dernière fois. Modifier cette fonction en
ajoutant juste après “-reducer $2”:
-combiner $2
- A la fin du fichier, ajouter une ligne pour l’alias:
alias hsc=run_mapreduce_combiner
- Sauvegarder le fichier, puis exécuter la commande suivante sur le terminal, pour prendre
en considération les nouvelles modifications:
source ~/.bashrc
- Désormais, pour prendre en considération le combiner, lancer la commande hsc à la place de
hs.
On désire également voir quel est le nombre d’entrées arrivant au Reducer. Pour faire cela, il faut,
après exécution du job MapReduce:
- Ouvrir un navigateur. Vous trouverez des raccourcis prédéfinis dans le navigateur firefox
de votre machine.
- Dans le raccourcis Hadoop, aller à Yarn Resource Manager
- Cliquer sur l’ID du job qui vient de se terminer. Cliquer ensuite sur le lien History
- Dans le menu de gauche, sous l’onglet Job, cliquer sur Counters
- Dans le tableau récapitulatif, regarder la valeur du Reduce input records.
Activité 4.
- Créer un programme MapReduce permettant de calculer la somme des ventes par jour de la
semaine.
- Lancer ce job d’abord sans combiner, puis avec combiner. Retenez à chaque fois:
o La somme des ventes le dimanche
o La valeur du Reduce Input Records.
TP2 : Design Patterns Map-Reduce
Page 6
IV. Homework
IV.1Partie 1
On se propose de réaliser une application mettant en oeuvre le patron de conception structurel.
Pour cela, nous allons réaliser la jointure de deux ensembles de données: les fichiers délimités
forum_nodes et forum_users.
Le fichier forum_nodes contient des informations sur les posts du forum, alors que forum_users
contient des informations sur les utilisateurs. Ils ont une clef en commun (author_id dans le fichier
forum_nodes et user_ptr_id dans forum_users).
Créer un job MapReduce permettant de donner, pour chaque post, les données suivantes:
"id" "title" "tagnames" "author_id" "node_type" "parent_id" "abs_parent_id" "added_at"
"score" "reputation" "gold" "silver" "bronze"
Quelle est la réputation de l’auteur du post dont l’identifiant est 100002517 ?
IV.2 Partie 2
Avancer dans le développement de votre réseau social :
1. Implémenter la partie front-end avec la technologie de votre choix.
2. Chercher, parmi ses fonctionnalités, celles qui nécessitent des traitements respectant les
designs patterns présentés plus haut, mais également le design pattern structurel, dont
vous aurez obligatoirement besoin si vous allez combiner des éléments provenant de
plusieurs tables/sources.
3. Quelles données de votre application seront stockées dans des bases de données NOSQL ?
Pourquoi ? Et quelle catégorie de bases NOSQL vous semble la plus appropriée pour vos
besoins ?

Contenu connexe

Tendances

Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de données
Jean-Marc Dupont
 
Conception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data WarehouseConception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data Warehouse
Abderrahmane Filali
 

Tendances (20)

Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
Technologies pour le Big Data
Technologies pour le Big DataTechnologies pour le Big Data
Technologies pour le Big Data
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
 
Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de données
 
Chapitre 3 spark
Chapitre 3 sparkChapitre 3 spark
Chapitre 3 spark
 
Big data
Big dataBig data
Big data
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & Actions
 
Conception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data WarehouseConception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data Warehouse
 
Chapitre1 introduction
Chapitre1 introductionChapitre1 introduction
Chapitre1 introduction
 

En vedette (13)

BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4J
 
Thinking Big - Big data: principes et architecture
Thinking Big - Big data: principes et architecture Thinking Big - Big data: principes et architecture
Thinking Big - Big data: principes et architecture
 
Thinking BIG
Thinking BIGThinking BIG
Thinking BIG
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
 
Javascript Design Patterns
Javascript Design PatternsJavascript Design Patterns
Javascript Design Patterns
 
Core JavaScript
Core JavaScriptCore JavaScript
Core JavaScript
 
Introduction au Web
Introduction au WebIntroduction au Web
Introduction au Web
 
Client-side JavaScript
Client-side JavaScriptClient-side JavaScript
Client-side JavaScript
 
Testing Angular
Testing AngularTesting Angular
Testing Angular
 
Angular
AngularAngular
Angular
 
Mobile developement
Mobile developementMobile developement
Mobile developement
 
Server-side JS with NodeJS
Server-side JS with NodeJSServer-side JS with NodeJS
Server-side JS with NodeJS
 
Thinking big
Thinking bigThinking big
Thinking big
 

Similaire à BigData_TP2: Design Patterns dans Hadoop

Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2
Emeric Tapachès
 

Similaire à BigData_TP2: Design Patterns dans Hadoop (20)

Outils front-end
Outils front-endOutils front-end
Outils front-end
 
Programmation linéniaire
Programmation linéniaire Programmation linéniaire
Programmation linéniaire
 
Presentation Map Reduce
Presentation Map ReducePresentation Map Reduce
Presentation Map Reduce
 
ch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdf
 
Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2
 
Synchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplementSynchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplement
 
BBL - Monitoring - kyriba
BBL - Monitoring - kyribaBBL - Monitoring - kyriba
BBL - Monitoring - kyriba
 
ALT.NET Modéliser Parallèle avec C# 4.0
ALT.NET Modéliser Parallèle avec C# 4.0ALT.NET Modéliser Parallèle avec C# 4.0
ALT.NET Modéliser Parallèle avec C# 4.0
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big Data
 
Spideo: Movie Recommendation Analytics with Cassandra (Français)
Spideo: Movie Recommendation Analytics with Cassandra (Français)Spideo: Movie Recommendation Analytics with Cassandra (Français)
Spideo: Movie Recommendation Analytics with Cassandra (Français)
 
Spad big data - sfds - 2016
Spad   big data - sfds - 2016Spad   big data - sfds - 2016
Spad big data - sfds - 2016
 
TP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage MachineTP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage Machine
 
Atelier IDS SNORT
Atelier IDS SNORTAtelier IDS SNORT
Atelier IDS SNORT
 
Xml
XmlXml
Xml
 
MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?
MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?
MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?
 
BI : Analyse des Données avec Mondrian
BI : Analyse des Données avec Mondrian BI : Analyse des Données avec Mondrian
BI : Analyse des Données avec Mondrian
 
La classification des Emails utilisant le modèle MapReduce
La classification des Emails utilisant le modèle MapReduce La classification des Emails utilisant le modèle MapReduce
La classification des Emails utilisant le modèle MapReduce
 
MapReduce: Traitement de données distribué à grande échelle simplifié
MapReduce: Traitement de données distribué à grande échelle simplifiéMapReduce: Traitement de données distribué à grande échelle simplifié
MapReduce: Traitement de données distribué à grande échelle simplifié
 
Serveur node red
Serveur node redServeur node red
Serveur node red
 

Plus de Lilia Sfaxi

Plus de Lilia Sfaxi (20)

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdf
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdf
 
Lab3-DB_Neo4j
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4j
 
Lab2-DB-Mongodb
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-Mongodb
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-Cassandra
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-Correction
 
TD4-UML
TD4-UMLTD4-UML
TD4-UML
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-Séquences
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
TD1 - UML - DCU
TD1 - UML - DCUTD1 - UML - DCU
TD1 - UML - DCU
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
 

BigData_TP2: Design Patterns dans Hadoop

  • 1. Institut National des Sciences Appliquées et de Technologie Tunisie Big Data 2015-2016 TP2- DESIGN PATTERNS MAP- REDUCE Dr. Lilia SFAXI Objectifs du TP : Encore plus d’exercices sur Map-Reduce, cette fois ci en respectant les différents patrons de conception.
  • 2. TP2 : Design Patterns Map-Reduce Page 2 I. Rappel sur les Design Patterns Map Reduce Les Patrons de Conception Map Reduce (ou plus communément les Design Patterns) permettent d’aider l’utilisateur à savoir QUAND utiliser Map-Reduce pour résoudre ses problèmes. Chacun de ces patrons représente une classe de problèmes récurrents pour ceux qui manipulent les Big Data. Ce qui est utile, car on peut ainsi appliquer une solution standardisée et unifiée pour chacune de nos difficultés. Les Design Patterns les plus utilisés sont: - Les Patrons de Filtrage - Les Patrons de Récapitulation - Les Patrons Structurels Ce TP est largement inspiré du cours Introduction to Hadoop and MapReduce, réalisé par Cloudera. II. Patrons de Filtrage : Filtrage Simple Les Patrons de filtrage permettent de sélectionner certains enregistrements, parmi la totalité des enregistrements existants dans votre source de données, respectant un critère donné. Dans cette partie, nous travaillons sur les données d’un forum. Ces données ont la forme suivante: Id title tagnames author_id body node_type parent_id … On s’intéresse au 5ème champs, soit le corps du message. Nous désirons dans cet exercice extraire les posts les plus courts du forum, soit les posts dont le corps contient uniquement une phrase. Une phrase est un texte qui, soit ne contient aucun signe de ponctuation parmi “ . ! ? ”, soit seulement l’un d’entre eux comme dernier caractère. Les nouvelles lignes ne sont pas prises en considération.
  • 3. TP2 : Design Patterns Map-Reduce Page 3 Activité 1. Les données source se trouvent dans le fichier forum_data.tar.gz fourni par votre enseignante. - Décompresser ce fichier : tar zxvf forum_data.tar.gz - On s’intéresse au fichier forum_node.tsv. Visualiser les premières lignes de ce fichier pour voir la structure complète des données. - Écrire et tester un Mapper permettant d’extraire uniquement les posts d’une phrase ou moins. - Écrire et tester un Reducer permettant de compter le nombre de posts. - Combien y’a-t-il de posts avec une seule phrase ou moins? III. Patrons de Récapitulation Ces patrons vous aident à avoir une compréhension globale et de haut niveau de vos données. III.1 Index Nous nous proposons pour cet exercice de créer un index pour nos données, c’est à dire un fichier permettant d’afficher pour chaque mot, dans quels posts du forum est-ce qu’il a été mentionné, et combien de fois.
  • 4. TP2 : Design Patterns Map-Reduce Page 4 Activité 2. - Écrire et tester un Mapper permettant d’extraire les différents mots d’un post (les mots sont séparés par des caractères d’espacement, ou par les caractères . ! ? : ; “ ( ) < > [ ] # $ = - / ), puis de les afficher dans des lignes séparées, avec le node_id dans lequel ils se trouvent. - Écrire et tester un Reducer permettant de donner, pour chacun des mots, le nombre d’occurrences, ainsi que la liste des node_id dans lesquels il apparaît. - Tester le job Hadoop uniquement sur les 10000 premières lignes du fichier forum_node. (le job exécuté sur toutes les données prend trop de temps) o Combien de fois est-ce que le mot difficult apparaît-il? o Donner la liste des noeuds dans lesquels apparaît le mot difficulty. III.2 Moyenne On s’intéresse dans cette partie à calculer la moyenne des ventes chaque jour de la semaine PS : pour extraire le jour de la semaine d’une date avec Python, utiliser l’instruction suivante: weekday = datetime.strptime(date,”%Y-%m-%d”).weekday() Activité 3. - Écrire et tester un programme MapReduce qui parcourt le fichier purchases.txt pour extraire la moyenne des ventes pour chaque jour de la semaine. - Quelle est la valeur moyenne des ventes le Dimanche (Sunday)? III.3 Combiner Utiliser un combiner permet de faire des réductions sur le nœud Mapper avant d’envoyer le résultat au Reducer, ce qui diminue considérablement le trafic sur le réseau, ainsi que le travail du Reducer.
  • 5. TP2 : Design Patterns Map-Reduce Page 5 Pour faire cela, suivre les étapes suivantes: - Ouvrir le fichier .bashrc - Ajouter un nouveau raccourci de commande run_mapreduce_combiner en copiant la fonction run_mapreduce que vous avez créé la dernière fois. Modifier cette fonction en ajoutant juste après “-reducer $2”: -combiner $2 - A la fin du fichier, ajouter une ligne pour l’alias: alias hsc=run_mapreduce_combiner - Sauvegarder le fichier, puis exécuter la commande suivante sur le terminal, pour prendre en considération les nouvelles modifications: source ~/.bashrc - Désormais, pour prendre en considération le combiner, lancer la commande hsc à la place de hs. On désire également voir quel est le nombre d’entrées arrivant au Reducer. Pour faire cela, il faut, après exécution du job MapReduce: - Ouvrir un navigateur. Vous trouverez des raccourcis prédéfinis dans le navigateur firefox de votre machine. - Dans le raccourcis Hadoop, aller à Yarn Resource Manager - Cliquer sur l’ID du job qui vient de se terminer. Cliquer ensuite sur le lien History - Dans le menu de gauche, sous l’onglet Job, cliquer sur Counters - Dans le tableau récapitulatif, regarder la valeur du Reduce input records. Activité 4. - Créer un programme MapReduce permettant de calculer la somme des ventes par jour de la semaine. - Lancer ce job d’abord sans combiner, puis avec combiner. Retenez à chaque fois: o La somme des ventes le dimanche o La valeur du Reduce Input Records.
  • 6. TP2 : Design Patterns Map-Reduce Page 6 IV. Homework IV.1Partie 1 On se propose de réaliser une application mettant en oeuvre le patron de conception structurel. Pour cela, nous allons réaliser la jointure de deux ensembles de données: les fichiers délimités forum_nodes et forum_users. Le fichier forum_nodes contient des informations sur les posts du forum, alors que forum_users contient des informations sur les utilisateurs. Ils ont une clef en commun (author_id dans le fichier forum_nodes et user_ptr_id dans forum_users). Créer un job MapReduce permettant de donner, pour chaque post, les données suivantes: "id" "title" "tagnames" "author_id" "node_type" "parent_id" "abs_parent_id" "added_at" "score" "reputation" "gold" "silver" "bronze" Quelle est la réputation de l’auteur du post dont l’identifiant est 100002517 ? IV.2 Partie 2 Avancer dans le développement de votre réseau social : 1. Implémenter la partie front-end avec la technologie de votre choix. 2. Chercher, parmi ses fonctionnalités, celles qui nécessitent des traitements respectant les designs patterns présentés plus haut, mais également le design pattern structurel, dont vous aurez obligatoirement besoin si vous allez combiner des éléments provenant de plusieurs tables/sources. 3. Quelles données de votre application seront stockées dans des bases de données NOSQL ? Pourquoi ? Et quelle catégorie de bases NOSQL vous semble la plus appropriée pour vos besoins ?