Modelos e Sistemas para Computação Distribuída no Hadoop discute os desafios da computação distribuída e como diferentes modelos como MapReduce, BSP, Pregel e Spark abordam esses desafios. O documento também descreve sistemas como Hadoop, Giraph, Impala e Dremel que implementam esses modelos para processamento em batch, grafos e em tempo real.
13. MapReduce
● Publicado em 2004 pelo Google
● Usuário define duas funções: map e reduce
(k1, v1) lista(k2, v2)
(k2, lista(v2)) lista(v2)
Map:
Reduce:
20. Jobs iterativos no MapReduce
Leitura dos dados em disco
Mapper emite valores intermediários
Dados ordenados em disco
21. Jobs iterativos no MapReduce
Leitura dos dados em disco
Mapper emite valores intermediários
Dados ordenados em disco
Dados enviados para reducers
22. Jobs iterativos no MapReduce
Leitura dos dados em disco
Mapper emite valores intermediários
Dados ordenados em disco
Dados enviados para reducers
Resultado escrito em disco
23. Jobs iterativos no MapReduce
Leitura dos dados em disco
Mapper emite valores intermediários
Dados ordenados em disco
Dados enviados para reducers
Resultado escrito em disco
Novo job é criado
24. Bulk Synchronous Parallel
● Publicado em 1990 por Leslie G. Valiant
● Algoritmo BSP -> Sequência de supersteps
● Cada superstep tem três fases
29. Pregel
● Publicado em 2010 pelo Google
● Inspirado no BSP com foco em Grafos
● Um processo para cada vértice
● Vértices e arestas ficam armazenados localmente
36. Dremel
● Publicado em 2010 pelo Google
● Engine para execução de consultas
● Dados armazenados em formato
orientado a colunas
● Queries executadas de forma
nativa (não utiliza MapReduce)
37. Dremel
Camada de armazenamento (ex. GFS,
HDFS)
SELECT A, COUNT(B) FROM T GROUP BY A
SELECT A, SUM(c) FROM
(R1 UNION ALL ...Rn) GROUP BY A
Ri = SELECT A, COUNT(B) AS c FROM
Ti GROUP BY A
servidor raíz
servidores
intermediários
servidores
folha
41. Spark
● Desenvolvido inicialmente em Berkeley
● 80 operadores para escrita de software paralelo
● Resilient Distributed Datasets (RDDs)
42. Spark: Resilient Distributed Datasets
● Coleção de dados particionada somente-leitura
● Criados por operações determinísticas (transformações)
em outro RDD ou arquivo
● Usuário define particionamento (otimizações de
localidade) e armazenamento (RAM, disco)
50. Hadoop
MapReduce
Hama Giraph Impala/Drill Spark
Modelo MapReduce BSP/Pregel Pregel Dremel RDD
Algoritmos
iterativos
x x x
Grafos x x x
Tolerancia a
falhas
x x x - x
Real-time x x
52. Imagens
● Ungroup designed by Steve Swedler from the Noun Project
● Broken Machine by Anton Håkanson from The Noun Project
● Plug designed by Nick Abrams from the Noun Project
● Hour Glass designed by Benni from the Noun Project
● "Microsoft Bing Maps' datacenter" by Robert Scoble
● "DSCN9980" by mtneer_man
● Computer designed by Claudine Rodriguez from the Noun Project