4 exemples de problèmes mapreduce...

32
4 Exemples de problèmes MapReduce incrémentaux Calcul des plus courtes distances à un noeud d’un graphe Calcul des plus courts chemins entre toutes les paires de noeuds d’un graphe Algorithme PageRank Regression Logistique 1 / 32

Upload: others

Post on 25-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

4 Exemples de problèmes MapReduce incrémentaux

Calcul des plus courtes distances à un noeud d’un graphe

Calcul des plus courts chemins entre toutes les paires denoeuds d’un graphe

Algorithme PageRank

Regression Logistique

1 / 32

Page 2: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Calcul des plus courtes distances à un noeud d’ungraphe

Quelles Entrées ?

Quelles Transformations Map ?

Quelles Clés de Regroupement ?

Quelles opérations de réduction ?2 / 32

Page 3: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Calcul des plus courtes distances à un noeud d’ungraphe

Données :Structure de Noeud n:

n.id : identifiant du noeud nn.adjacencyList : Liste d’adjacence S(n) du noeud nn.dist : Distance du noeud n au noeud de départ start(initialisée à ∞ pour tous les noeuds sauf start)

Formulation (BFS):start .dist = 0Pour tout noeud n atteignable par un ensemble de noeudsM, n.dist = 1+ min

m∈Mm.dist

3 / 32

Page 4: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Calcul des plus courtes distances à un noeud d’ungraphe

Breadth First Search: Job MapReduce

Map( n ) {Emettre ( n . id , n ) ;Si (n.dist <∞ ) :

Pour t o u t id ∈ n.adjacencyList :dist ← n.dist +1Emettre ( id ,Node ( id ,m.dist ,; ) ) ;

}

Reduce ( nid , nodes ) {min ←∞ ;nmin ←; ;adj ←; ;Pour t o u t n ∈ nodes :

Si (n.adjacencyList 6= ; ) : adj ← n.adjacencyListSi ( ( nmin ==; ) ou (n.dist <min ) ) :

min ← n.dist ;nmin ← n

nmin.adjacencyList ← adj ;Emettre ( nmin ) ;

}

4 / 32

Page 5: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Calcul des plus courts chemins entre toutes les pairesde noeuds d’un graphe

Quelles Entrées ?

Quelles Transformations Map ?

Quelles Clés de Regroupement ?

Quelles opérations de réduction ?5 / 32

Page 6: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Calcul des plus courts chemins entre toutes les pairesde noeuds d’un graphe

Données :Chemins C entre paire de noeuds:

C.start : noeud de departC.end : noeud de finC.dist : distance (nbre de liens à suivre pour atteindre C.endà partir de C.startC.shortests: Ensemble de chemins de C.start à C.end dedistance C.dist

Formulation :Pour tout couple de noeuds u,v tel qu’il existe un lien entreu et v , la distance minimale D(u,v) est : D(u,v)= 1Pour tout couple de noeuds u,v non directement lié :D(u,v)=min

m(D(u,m)+D(m,v))

6 / 32

Page 7: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Calcul des plus courts chemins entre toutes les pairesde noeuds d’un graphe

Calcul des plus courts chemins: Job MapReduce

Map( p ) {Emettre ( p . s t a r t , p ) ;Si ( p . new ) : Emettre ( p . end , p ) ;

}

Reduce ( node , L i s tPa ths ) {P ←;;Ends ←;;Starts ←;Pour t o u t p ∈ ListPaths :

p.new ←False ;Si ( p . s t a r t ==node ) : Ends =Ends∪p ;Sinon : Starts =Starts∪p ;

Pour t o u t ep ∈Ends :P[ep.start ,ep.end ]= ep ;Pour t o u t sp ∈Starts :

Si ( sp . s t a r t ==ep . s t a r t ) : cont inue ;d ← sp.dist +ep.dist ;p ←P[sp.start ,ep.end ] ;Si ( ( p== n u l l ) ou ( p . d i s t >=d ) ) :

newp ←Fusion(sp,ep) ;Si ( p . d i s t ==d ) :

p.shortests ← p.shortests∪newp.shortests ;Sinon :

P[sp.start ,ep.end ]← newp ;Pour t o u t p ∈P : Emettre ( p ) ;

}

7 / 32

Page 8: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Algorithme PageRank

PageRank simule le comportement d’un surfeur aléatoire:1 au temps t , le sufeur est sur la page pt ,2 avec une probabilité d , il clique aléatoirement sur un lien de

pt . pt+1 est alors la page pointée par ce lien.3 avec une probabilité 1−d , pt+1 est une page Web choisie

aléatoirement.4 retour à l’étape 1.

AvecPi : l’ensemble des pages pointant vers la page i`j : le nombre de liens sortant de la page j

Probabilité µti que le surfeur soit sur la page i au temps t =

µt+1 = 1−dN

1+dAµt avec Aij ={ 1`j

si j ∈Pi

0 sinonet N : #pages Web.

8 / 32

Page 9: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Algorithme PageRank

µt+1 = 1−dN

1+dAµt avec Aij ={ 1`j

si j ∈Pi

0 sinonet N : #pages Web.

Quelles Entrées ?

Quelles Transformations Map ?

Quelles Clés de Regroupement ?

Quelles opérations de réduction ?

9 / 32

Page 10: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Algorithme PageRank

Avec d=1 :

10 / 32

Page 11: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Algorithme PageRank

Avec d=1 :

11 / 32

Page 12: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Algorithme PageRank

Avec d=1 :

12 / 32

Page 13: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Algorithme PageRank

Données :Structure de Noeud n:

n.id : identifiant du noeud nn.adjacencyList : Liste d’adjacence S(n) du noeud nn.p: score PageRank à l’iteration courante

Formulation :

Pour tout noeud n: n.pt0 = 1N

Pour tout noeud n atteignable par un ensemble de noeuds

M, n.pt+1 = 1−dN

+d∑

m∈M

m.pt

|m.adjacencyList |

13 / 32

Page 14: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Algorithme PageRank

PageRank: Job MapReduce

Map( n ) {

np ← n.p|m.adjacencyList |

n.p ← 0Emettre ( n . id , n ) ;Pour t o u t id ∈ n.adjacencyList :

Emettre ( id ,Node ( id ,;,np ) ) ;}

Reduce ( nid , nodes ) {sum ← 0 ;adj ←; ;Pour t o u t n ∈ nodes :

Si (n.adjacencyList 6= ; ) : adj ← n.adjacencyList ;sum ← sum+n.p ;

Emettre (Node (nid ,adj ,1−d

N+d ×sum ) ) ;

}

14 / 32

Page 15: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Regression Logistique

Hypothèse :Rapport de probas conditionnelles peut être modélisé parune application linéaireln p(1|x)

1−p(1|x) = θ.x

⇒ p(1|X )= eθ.x

1+eθ.x = 11+e−θ.x

Maximum de vraissemblanceθ∗ = argmax

θ

∑ni yi ln( 1

1+e−θ.x )+ (1−yi)ln(1− 11+e−θ.x )

Gradient :∑n

i xi(yi − 11+e−θ.x )

15 / 32

Page 16: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Regression Logistique

Estimation du maximum de vraissemblance par montée degradient :

θt+1 = θt +αn∑i

xi(yi −1

1+e−θ.x )

Quelles Entrées ?

Quelles Transformations Map ?

Quelles Clés de Regroupement ?

Quelles opérations de réduction ?

16 / 32

Page 17: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Regression Logistique

Données :Item =

item.x : Vecteur de features de nbDims dimensionsitem.y : Score à prédire

Entrées fixes, seul θ varie

Formulation:θt+1 = θt +α∑n

i xi(yi − 11+e−θ.x )

17 / 32

Page 18: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Regression Logistique

Montée de gradient: Job MapReduce

Map( i tem ) {Pour i de 1 à nbDims :

Emettre ( i , item.xi (item.y − 11+e−<θ,item.x> ) ) ;

}

Reduce ( i , g rad ien ts ) {sumg ← 0 ;Pour t o u t g ∈ gradients :

sumg ← sumg+gEmettre ( i , thetai +α×sumg ) ;

}

18 / 32

Page 19: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Hadoop Map Reduce: Echaînement de Jobs

Resultats en tant que nouvelles entrées du MapReduce⇒ Ecriture/Lecture des resultats dans des SequenceFile

Ecriture/Lecture des resultats dans des fichiersDe préférence SequenceFile :job.setOuputFormat(SequenceFileOutputFormat.class)A l’iteration suivante, lecture à partir d’un SequenceFile :job.setInputFormat(SequenceFileInputFormat.class)

Resultats en tant que données en RAM ⇒ Entrées fixesEntrées fixesParamètres lus à partir de fichiers resultats

19 / 32

Page 20: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Hadoop Map Reduce vs Spark

Hadoop Map Reduce: InconvénientsBeaucoup de lectures/ecritures sur disquePas de mise en mémoire vive

SparkMise en oeuvre d’une mémoire partagéeSimplification des process

⇒ Jusqu’à 10x fois plus rapide sur disque⇒ Jusqu’à 100x fois plus rapide sur disque⇒ Code plus compact⇒ Mieux adapté pour l’apprentissage statistique

20 / 32

Page 21: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Spark

Contexte SparkDéfinit les opérations Spark à effectuer sur les collectionsde données

Spark: Initialisation

impor t org . apache . spark . SparkConf ;impor t org . apache . spark . ap i . java . JavaSparkContext ;

SparkConf sparkConf = new SparkConf ( ) . setAppName (name ) ;JavaSparkContext sc = new JavaSparkContext ( sparkConf ) ;

21 / 32

Page 22: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

SparkResilient Distributed Datasets (RDD)

Collections d’éléments manipulables en parallèleDeux manières de créer des RDDs:

Parallelisation d’une collection en mémoireSpark: Collection parallelisée

impor t org . apache . spark . ap i . java . JavaRDD ;L i s t < In teger > data = Arrays . a s L i s t (1 , 2 , 3 , 4 , 5 ) ;JavaRDD<In teger > d is tDa ta = sc . p a r a l l e l i z e ( data ) ;

Référencement d’un dataset sur un système de fichierdistribué comme HDFS

Spark: Initialisation

impor t org . apache . spark . ap i . java . JavaRDD ;

/ / F i c h i e r ( s ) t ex te à l i r e l i g n e par l i g n eJavaRDD<St r ing > d i s t F i l e = sc . t e x t F i l e ( " data " ) ;

/ / F i c h i e r s t ex te e n t i e r sJavaRDD<St r ing > d i s t F i l e = sc . wholeTextF i les ( " data " ) ;

/ / F i c h i e r ( s ) SequenceFile avec K et V des types de données étendant Wr i tab leJavaRDD<St r ing > d i s t F i l e = sc . sequenceFi le [K, V ] ( " data " ) ;

/ / Autres types de f i c h i e r s avec Reader HadoopJavaRDD<St r ing > d i s t F i l e = sc .newHadoopRDD ( " data " ) ;

22 / 32

Page 23: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Spark

Deux types d’operations sur les RDDTransformations

Création de nouveaux RDD par application d’unetransformation

map, flatMap, filter, reduceByKey, join, etc..."Lazy" operations => effectué uniquement lorsqu’une actionest requise sur le resultat de la transformation

Moins de résultats à retournerPlannification des tâches facilitée

ActionsOpération produisant un résultat

reduce, takeSample, count(), etc...saveAsTextFile, saveAsSequenceFile, etc...

23 / 32

Page 24: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Spark

Persistence des RDDSi besoin de réutiliser le résultat d’une transformationplusieurs foisrdd.persist(StorageLevel.level): stocke le RDD pourutilisation ultérieure

Différents types de stockage:MEMORY_ONLY : Stocke les RDD en tant qu’objets Javadéserialisés en mémoire vive. Si une partie ne tient pas enmémoire, elle sera re-calculée lorsque l’on en aura besoinMEMORY_AND_DISK : Stocke les RDD en tant qu’objetsJava déserialisés en mémoire vive, mais si une partie netient pas en mémoire, on l’écrit sur disqueDISK_ONLY : Stocke les RDD sur disqueMEMORY_ONLY_SER et MEMORY_AND_DISK_SER :Identique à MEMORY_ONLY et MEMORY_AND_DISKmais stocke les objets après sérialisation. Plus léger enmémoire mais plus lent à reconstruire.

24 / 32

Page 25: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Spark

25 / 32

Page 26: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Spark

FonctionsDéfinition de fonction à passer aux opérations

Function : 1 argument en entrée, chaque valeur du dataset(map)Function2 : 2 arguments en entrée, le resultat courant + lanouvelle valeur (reduction)FlatMapFunction : 1 argument en entrée, une liste de valeuren sortie (flatMap)

Spark: Exemple

JavaRDD<St r ing > l i n e s = sc . t e x t F i l e ( " data . t x t " ) ;JavaRDD<In teger > l ineLengths = l i n e s .map(new Funct ion <St r ing , In teger > ( ) {

p u b l i c I n tege r c a l l ( S t r i n g s ) { r e t u r n s . leng th ( ) ; }} ) ;i n t t o t a l Leng th = l ineLengths . reduce (new Function2 < In teger , In teger , In teger > ( ) {

p u b l i c I n tege r c a l l ( I n tege r a , I n tege r b ) { r e t u r n a + b ; }} ) ;

26 / 32

Page 27: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Spark

Certaines opérations travaillent avec des paires Clé-ValeurJavaPairRDD, PairFunction, Tuple2

Spark: Exemple

JavaRDD<St r ing > l i n e s = j s c . t e x t F i l e ( " JavaHdfsLR . java " ) ;JavaRDD<St r ing > words = l i n e s . f la tMap (

new FlatMapFunction <St r ing , S t r ing > ( ) {p u b l i c I t e r a b l e <St r ing > c a l l ( S t r i n g s ) {

r e t u r n Arrays . a s L i s t ( s . s p l i t ( " " ) ) ;}

}) ;JavaPairRDD<St r ing , In teger > ones = words . mapToPair (

new Pai rFunct ion <St r ing , S t r ing , In teger > ( ) {p u b l i c Tuple2 <St r ing , In teger > c a l l ( S t r i n g s ) {

r e t u r n new Tuple2 <St r ing , In teger >(s , 1 ) ;}

}) ;JavaPairRDD<St r ing , In teger > counts = ones . reduceByKey (

new Function2 < In teger , In teger , In teger > ( ) {p u b l i c I n tege r c a l l ( I n tege r i1 , I n tege r i 2 ) {

r e t u r n i 1 + i 2 ;}

}) ;

27 / 32

Page 28: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Spark

Variables partagées

Mise en place de variables auxquelles les différentsprocess en parallèle peuvent avoir accès

⇒ Très utile pour des tâches d’apprentissage statistique avecoptimisation itérative de paramètres

Deux types de variables partagéesVariables Broadcast: variable en lecture seule, partagée partous les processAccumulateurs: variable en écriture seule, à laquelle on nepeut qu’ajouter des éléments (seul le Driver peut lire lecontenu de la variable)

28 / 32

Page 29: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

SparkDeux types de variables partagées

Variables Broadcast

Spark: Variables Broadcast

Broadcast < i n t [ ] > broadcastVar = sc . broadcast (new i n t [ ] {1 , 2 , 3 } ) ;broadcastVar . value ( ) ;

Accumulateurs

Spark: Accumulateurs

c lass VectorAccumulatorParam implements AccumulatorParam<Vector > {p u b l i c Vector zero ( Vector i n i t i a l V a l u e ) {

r e t u r n i n i t i a l V a l u e ;}p u b l i c Vector addInPlace ( Vector v1 , Vector v2 ) {

v1 . addInPlace ( v2 ) ; r e t u r n v1 ;}

}Vector i n i t i a l V a l u e =new Vector ( . . . ) ;Accumulator <Vector > vecAccum = sc . accumulator ( i n i t i a l V a l u e , new VectorAccumulatorParam ( ) ) ;/ / De n ’ importe quel process :vacAccum . add (new Vector ( . . . ) ) ;/ / Du d r i v e r :vacAccum . value ( ) ;

29 / 32

Page 30: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Spark

Exemple Spark: Regression Logistique

c lass ComputeGradient extends Funct ion <DataPoint , Vector > {p r i v a t e Vector w;ComputeGradient ( Vector w) { t h i s .w = w; }p u b l i c Vector c a l l ( DataPoint p ) {

r e t u r n p . x . t imes ( p . y − (1 / (1 + Math . exp(−w. dot ( p . x ) ) ) ) ) ;}

}

JavaRDD<DataPoint > po in t s = spark . t e x t F i l e ( . . . ) . map(new ParsePoint ( ) ) . cache ( ) ;Vector w = Vector . random (D) ; / / cu r ren t separa t ing planef o r ( i n t i = 0 ; i < ITERATIONS ; i ++) {

Vector g rad ien t = po in t s .map(new ComputeGradient (w ) ) . reduce (new AddVectors ( ) ) ;w = w. sub t rac t ( g rad ien t ) ;

}System . out . p r i n t l n ( " F i na l separa t ing plane : " + w) ;

30 / 32

Page 31: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Spark

31 / 32

Page 32: 4 Exemples de problèmes MapReduce incrémentauxdenoyer/wordpress/wp-content/uploads/2015/02/cbg3.pdf · Hadoop Map Reduce vs Spark Hadoop Map Reduce: Inconvénients Beaucoup de lectures/ecritures

Spark Streaming

32 / 32