MapReduce pour les graphes



Documents pareils
MapReduce. Nicolas Dugué M2 MIAGE Systèmes d information répartis

4 Exemples de problèmes MapReduce incrémentaux

Introduction aux algorithmes MapReduce. Mathieu Dumoulin (GRAAL), 14 Février 2014

Map-Reduce : un cadre de programmation parallèlle pour l analyse de grandes données. Stéphane Genaud ENSIIE

Programmation parallèle et distribuée

Hadoop, Spark & Big Data 2.0. Exploiter une grappe de calcul pour des problème des données massives

M2 GL UE DOC «In memory analytics»

Les technologies du Big Data

Table des matières INITIATION À SPARK AVEC JAVA 8 ET SCALA

HADOOP ET SON ÉCOSYSTÈME

Cartographie des solutions BigData

Our experience in using Apache Giraph for computing the diameter of large graphs. Paul Bertot - Flavian Jacquot

Certificat Big Data - Master MAthématiques

Fouille de données massives avec Hadoop

Notes de cours Practical BigData

Big Graph Data Forum Teratec 2013

Déploiement d une architecture Hadoop pour analyse de flux. françois-xavier.andreu@renater.fr

Introduction à MapReduce/Hadoop et Spark

Panorama des solutions analytiques existantes

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Fouillez facilement dans votre système Big Data. Olivier TAVARD

MapReduce et Hadoop. Alexandre Denis Inria Bordeaux Sud-Ouest France ENSEIRB PG306


Les Angles. I) Angles complémentaires, angles supplémentaires. 1) Angles complémentaires. 2 Angles supplémentaires. a) Définition.

Big Data Concepts et mise en oeuvre de Hadoop

SEO Campus 2009 : Pagerank et optimisation

Resolution limit in community detection

Labs Hadoop Février 2013

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Bases de données documentaires et distribuées Cours NFE04

Cours 8 Not Only SQL

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

Introduction à la théorie des graphes. Solutions des exercices

BIG Data et R: opportunités et perspectives

L écosystème Hadoop Nicolas Thiébaud Tuesday, July 2, 13

Introduction Big Data

INEX. Informatique en Nuage : Expérimentations et Vérification. Livrable n M2.1 ÉTUDE ET PARALLÉLISATION. Jérôme Richard

Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Programmation parallèle et distribuée

Ricco Rakotomalala R.R. Université Lyon 2

R+Hadoop = Rhadoop* Des logiciels libres complémentaires, une implémentation, une réponse au nouveau paradigme du bigdata!

Bases de Données NoSQL

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

BIG DATA en Sciences et Industries de l Environnement

Les participants repartiront de cette formation en ayant une vision claire de la stratégie et de l éventuelle mise en œuvre d un Big Data.

Les capitalistes sociaux sur Twitter : détection via des mesures de similarité

Les structures de données. Rajae El Ouazzani

Acquisition des données - Big Data. Dario VEGA Senior Sales Consultant

Programmation parallèle et distribuée (Master 1 Info )

Hadoop dans l entreprise: du concept à la réalité. Pourquoi et comment?

Change the game with smart innovation

Safe Harbor Statement

CORRECTION EXERCICES ALGORITHME 1

Hadoop : une plate-forme d exécution de programmes Map-Reduce

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Fast and furious decision tree induction

Offre formation Big Data Analytics

Formation Cloudera Data Analyst Utiliser Pig, Hive et Impala avec Hadoop

2.4 Représentation graphique, tableau de Karnaugh

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Hadoop, les clés du succès

Mathématiques I Section Architecture, EPFL

Analytics & Big Data. Focus techniques & nouvelles perspectives pour les actuaires. Université d Eté de l Institut des Actuaires Mardi 8 juillet 2014

Hadoop / Big Data MBDS. Benjamin Renaut <renaut.benjamin@tokidev.fr>

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Les enjeux du Big Data Innovation et opportunités de l'internet industriel. Datasio 2013

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant

Implémentation parallèle de certains algorithmes de fouille de données avec le framework MapReduce

Qualité du logiciel: Méthodes de test

Big Data. Concept et perspectives : la réalité derrière le "buzz"

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

TD 1 - Structures de Traits et Unification

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Importation et exportation de données dans HDFS

Hadoop : une plate-forme d exécution de programmes Map-Reduce

DEMARRER UN PROJET BIGDATA EN QUELQUES MINUTES GRACE AU CLOUD

Web Science. Master 1 IFI. Andrea G. B. Tettamanzi. Université de Nice Sophia Antipolis Département Informatique andrea.tettamanzi@unice.

FIMA, 7 juillet 2005

Le projet Gaïa, le Big Data au service du traitement de données satellitaires CRIP - 16/10/2013 Pierre-Marie Brunet

LE PROBLEME DU PLUS COURT CHEMIN

Programmation d Applications Concurrentes et Distribuées (INF431)

Big Data, un nouveau paradigme et de nouveaux challenges

11/01/2014. Le Big Data Mining enjeux et approches techniques. Plan. Introduction. Introduction. Quelques exemples d applications

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Centres informatiques

COURS SYRRES RÉSEAUX SOCIAUX INTRODUCTION. Jean-Loup Guillaume

Cours d Analyse. Fonctions de plusieurs variables

Titre : La BI vue par l intégrateur Orange

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

BIG DATA et DONNéES SEO

20 ans du Master SIAD de Toulouse - BigData par l exemple - Julien DULOUT - 22 mars ans du SIAD -"Big Data par l'exemple" -Julien DULOUT

FaceBook aime les Maths!

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Introduction à Hadoop & MapReduce

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON

Transcription:

MapReduce pour les graphes Nicolas Dugué nicolas.dugue@univ-orleans.fr M2 MIAGE Systèmes d information répartis

Plan 1 Introduction Spark 2 Spark avec des graphes 3 Composante Connexe 4 PageRank 2/34

Introduction Spark MapReduce mais plus encore : join, flatmap, groupbykey,... In-memory Distribué mais aussi en multi-coeurs Plus efficace qu Hadoop Utiliser HDFS ou non 3/34

Introduction Spark - Shell Scala Spark - Shell Scala Pas de configuration Pas de filesystem distribué utilisation en multi-coeurs 4/34

Plan 1 Introduction Spark 2 Spark avec des graphes 3 Composante Connexe 4 PageRank 5/34

Un graphe deuxcomposantes La liste d arcs 1;2 2;3 3;4 6;7 8;7 8;6 6/34

Un graphe deuxcomposantes La liste d adjacence 1, [2] 2, [1, 3] 3, [2, 4] 4, [2, 3] 6, [7, 8] 7, [6, 8] 8, [6, 7] 7/34

Un graphe deuxcomposantes scala> val graphfile = sc.textfile( deuxcomposantes ) graphfile: org.apache.spark.rdd.rdd[string] 8/34

Un graphe deuxcomposantes scala> graphfile.collect() Array[String] = Array(1;2, 2;3, 3;4, 6;7, 8;7, 8;6) 9/34

Un graphe deuxcomposantes scala> val graphrdd=graphfile.flatmap(x => Seq((x.split( ; )(0).toInt, x.split( ; )(1).toInt),(x.split( ; )(1).toInt, x.split( ; )(0).toInt) )) graphrdd: org.apache.spark.rdd.rdd[(int, Int)] 10/34

Un graphe deuxcomposantes scala> graphrdd.collect() Array[(Int, Int)] = Array((1,2), (2,1), (2,3), (3,2), (3,4), (4,3), (6,7), (7,6), (8,7), (7,8), (8,6), (6,8)) 11/34

Un graphe deuxcomposantes scala> var graphadj=graphrdd.groupbykey() org.apache.spark.rdd.rdd[(int, Iterable[Int])] 12/34

Un graphe deuxcomposantes scala> graphadj.collect() Array[(Int, Iterable[Int])] = Array((4,CompactBuffer(3)), (6,CompactBuffer(7, 8)), (8,CompactBuffer(7, 6)), (2,CompactBuffer(1, 3)), (1,CompactBuffer(2)), (3,CompactBuffer(2, 4)), (7,CompactBuffer(6, 8))) 13/34

Plan 1 Introduction Spark 2 Spark avec des graphes 3 Composante Connexe 4 PageRank 14/34

Objectif 15/34

Un graphe simple 1;2 2;3 4;5 Chaque sommet est dans sa composante 16/34

Liste d adjacence + composante 1, [2], 1 2, [1,3], 2 3, [2], 3 4, [5], 4 5, [4], 5 Map Pour chaque noeud n dans une composante c, pour tout v voisin de ce noeud, on produit (v, min(v, n, c)) Map(1, [2], 1) (2,1) 17/34

Liste d adjacence + composante 1, [2], 1 2, [1,3], 2 3, [2], 3 4, [5], 4 5, [4], 5 Map Pour chaque noeud n dans une composante c, pour tout v voisin de ce noeud, on produit (v, min(v, n, c)) Map(2, [1,3], 2) (1,1) (3,2) 18/34

Liste d adjacence + composante 1, [2], 1 2, [1,3], 2 3, [2], 3 4, [5], 4 5, [4], 5 Map Pour chaque noeud n dans une composante c, pour tout v voisin de ce noeud, on produit (v, min(v, n, c)) Map(3, [2], 3) (2,2) 19/34

Liste d adjacence + composante 1, [2], 1 2, [1,3], 2 3, [2], 3 4, [5], 4 5, [4], 5 Map Pour chaque noeud n dans une composante c, pour tout v voisin de ce noeud, on produit (v, min(v, n, c)) Map(4, [5], 4) (5,4) 20/34

Liste d adjacence + composante 1, [2], 1 2, [1,3], 2 3, [2], 3 4, [5], 4 5, [4], 5 Map Pour chaque noeud n dans une composante c, pour tout v voisin de ce noeud, on produit (v, min(v, n, c)) Map(5, [4], 5) (4,4) 21/34

Liste d adjacence + composante 1, [2], 1 2, [1,3], 2 3, [2], 3 4, [5], 4 5, [4], 5 Après le map (2,1) (1,1) (3,2) (2,2) (4,4) (5,4) 22/34

Liste d adjacence + composante 1, [2], 1 2, [1,3], 2 3, [2], 3 4, [5], 4 5, [4], 5 Avant le Reduce (2,[1,2]) (1,1) (3,2) (4,4) (5,4) 23/34

Liste d adjacence + composante 1, [2], 1 2, [1,3], 2 3, [2], 3 4, [5], 4 5, [4], 5 Reduce Parmi la liste des composantes obtenues, on choisit l entier minimum Après le Reduce (2,[1,2]) -> (2,1) (1,1) -> (1,1)) (3,2) -> (3,2) (4,4) -> (4,4) (5,4)-> (5,4) 24/34

Liste d adjacence + composante : avant 1, [2], 1 2, [1,3], 2 3, [2], 3 4, [5], 4 5, [4], 5 Liste d adjacence + composante : après 1, [2], 1 2, [1,3], 1 3, [2], 2 4, [5], 4 5, [4], 4 25/34

Liste d adjacence + composante : après 1, [2], 1 2, [1,3], 1 3, [2], 2 4, [5], 4 5, [4], 4 Map(2, [1,3], 1) (1,1) (3,1) 3 dans la composante 1 après reduce 26/34

Plan 1 Introduction Spark 2 Spark avec des graphes 3 Composante Connexe 4 PageRank 27/34

Intuition 28/34

Un graphe simple A;B A;C PR initialisé à 1 pour tous les noeuds PR(Node) = 0.15 + 0.85 * (PR(voisin 1 )/degré(voisin 1 ) +... + Pr(voisin n )/degré(voisin n )) 29/34

Un graphe simple - Première itération A, [B,C], 1 B, [A], 1 C, [A], 1 PR(Node) = 0.15 + 0.85 * (PR(voisin 1 )/degré(voisin 1 ) +... + Pr(voisin n )/degré(voisin n )) PR(A) = 0.15 + 0.85 * (PR(B)/degré(B) + Pr(C)/degré(C)) = 0.15 + 0.85 * (1 + 1)= 1.85 PR(B) = 0.15 + 0.85 * (PR(A)/degré(A)) = 0.15 + 0.85 * (1 / 2) = 0.575 = PR(C) 30/34

Un graphe simple - Seconde itération A, [B,C], 1.85 B, [A], 0.575 C, [A], 0.575 PR(Node) = 0.15 + 0.85 * (PR(voisin 1 )/degré(voisin 1 ) +... + Pr(voisin n )/degré(voisin n )) PR(A) = 0.15 + 0.85 * (PR(B)/degré(B) + Pr(C)/degré(C)) = 0.15 + 0.85 * (0.575 + 0.575)= 1.1275 PR(B) = 0.15 + 0.85 * (PR(A)/degré(A)) = 0.15 + 0.85 * (1.85/2) = 0.93625 = PR(C) 31/34

En MapReduce A, [B,C], 1 B, [A], 1 C, [A], 1 Map(A, [B,C], 1) (B, 1/2) (C, 1/2) Map(B, [A], 1) (A, 1) Map(C, [A], 1) (A, 1) 32/34

En MapReduce A, [B,C], 1 B, [A], 1 C, [A], 1 Après le map (B, 1/2) (C, 1/2) (A, [1, 1]) 33/34

Reduce (by key) A;B A;C Après le map (B, 1/2) => 0.15 + 0.85 * 1/2 (C, 1/2) => 0.15 + 0.85 * 1/2 (A, [1, 1]) => 0.15 + 0.85 * (1 + 1) 34/34