28
MapReduce Gil Abrantes gil@webreakstuff.com

MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 2: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

MapReduce?Google = vários TB/diaFramework de processamento distribuido

Page 3: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

MapReduce?

Fluxo dos dados

Distribuição do codigo das tarefas

Monitorização

Optimizações

Tolerancia a falhas

Page 4: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

MapReduce!Problemas resolvidos uma unica vezBase de codigo maduraFacil e rapido escrever jobs!

Page 5: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

IngredientesIngredientes

Page 6: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

Master

Centro de monitorização

Divide os dados em chunks

Recebe o resultado

Envia tarefas aos slaves

Page 7: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

Slaves

Devolvem o resultado

Recebem tarefas respectivas a chunks especi"cos

Procuram os respectivos chunks de dados

Executam as tarefas

Page 8: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

Master conhece o estado dos slavesDetecção de chunks rebeldes

Detecção de falhas

Page 9: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

OptimizaçõesOptimização espacial das tarefasReplicação de tarefas

Page 10: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes
Page 11: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

(out_key, intermediate_value) list

IN:

OUT:

map(int_key, in_value)

map

Page 12: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes
Page 13: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

reduce(out_key, intermediate_value list)

reduce

IN:

OUT: out_value list

Page 14: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes
Page 15: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

demo!

Page 16: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

O Timoteo é pequeno O urso Timoteo é um urso de peluche do IkeaO Fuzy gosta de tremoços

input

Page 17: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

map(1,“O Timoteo é pequeno”)

map(2, “O urso Timoteo é um urso de peluche”)

map(3, “O Fuzy gosta de tremoços”)

map!

Page 18: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

IN: “O Timoteo é pequeno”

OUT: “O”, 1 “Timoteo”, 1 “é”, 1 “pequeno”, 1

IN:“O urso Timoteo é um urso de peluche”

OUT: “O”, 1 “urso”,1 “Timoteo”, 1 “é”, 1 “um”, 1

“urso”,1 “de”, 1 “peluche”, 1

IN:“O Fuzy gosta de tremoços”

OUT:“O”, 1“Fuzy”, 1“gosta”, 1“de”, 1“tremoços”,1

map 1 map 2 map 3

Page 19: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

reduce!

reduce(“pequeno”, [1])

reduce(“O”, [1, 1, 1])

reduce(“urso”, [1,1])

reduce(“Timoteo”,[1, 1])

reduce(“de”,[1, 1])

reduce(“Fuzy”, [1])(...)

Page 20: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

reduce 1 reduce 2 reduce 3

IN: “pequeno”, [1]

OUT: “pequeno”, 1

IN: “O”, [1, 1, 1]

OUT: “O”, 3

IN: “urso”, [1,1]

OUT: “urso”, 2

Page 21: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

output

“O”, 3“Timoteo”, 2“é”, 2“pequeno”, 1“urso”, 2“um”, 1“de”, 2“peluche”, 1“Fuzy”, 1“gosta”, 1“tremoços”, 1

Page 22: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

!(MapReduce)

Page 23: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

Fn= Fn-1 + Fn-2 , F0= 0 e F1= 1

!(MapReduce)

Page 24: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

Implementações

Disco - open source, jobs Python, NokiaSkynet - open source, Ruby, Adam Pisoni

Hadoop - open source, Java, Apache Foundation

Page 25: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

Yahoo! Facebook IBM

Last.fm New York Times

Page 26: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

Recordista no Terabyte Sort BenchmarkInclui HDFS, uma implementação do GFS

Hadoop

Page 27: MapReduce - Universidade de Coimbraabrantes/mapreduce_barcamp.pdf · MapReduce! Problemas resolvidos uma unica vez Base de codigo madura Facil e rapido escrever jobs! IngredientesIngredientes

aws.amazon.com/publicdatasets+

Hadoop+

EC2 =

<3