SlideShare una empresa de Scribd logo
1 de 53
Descargar para leer sin conexión
Modelos e Sistemas para Computação
Distribuída no Hadoop
Thiago Cardoso | @tncardoso | zahpee.com
São Paulo, BRA
Desafios da Computação Distribuída
Particionamento
dos Dados
Escalonamento
da Execução
Falhas de
Hardware
Comunicação
entre Máquinas
A implementação do modelo ‘esconde’ estes desafios
Lógica para
processamento
dos dados
Por que entender os modelos?
NodeManager HiveMetastore
DataNode
Secondary
NameNode
CatalogServer
NameNode JobHistoryServer Impalad
ResourceManager HiveServerStateStore
Amazon
Elastic
MapReduce
O modelo utilizado deve ser escolhido
de acordo com o problema
MapReduce
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:
MapReduce
Map Reduce
MapReduce
GFS / HDFS
MapReduce - Contando palavras
palavra1 palavra2
palavra3
palavra1 palavra3
(“palavra1”, 1)
(“palavra1”, 1)
(“palavra2”, 1)
(“palavra3”, 1)
(“palavra3”, 1)
(“palavra1”, 2)
(“palavra2”, 1)
(“palavra3”, 2)
+
+
+
Map Reduce
MapReduce
Crunch
Processamento Iterativo
Jobs iterativos no MapReduce
Leitura dos dados em disco
Jobs iterativos no MapReduce
Leitura dos dados em disco
Mapper emite valores intermediários
Dados ordenados em disco
Jobs iterativos no MapReduce
Leitura dos dados em disco
Mapper emite valores intermediários
Dados ordenados em disco
Dados enviados para reducers
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
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
Bulk Synchronous Parallel
● Publicado em 1990 por Leslie G. Valiant
● Algoritmo BSP -> Sequência de supersteps
● Cada superstep tem três fases
Bulk Synchronous Parallel
P1 P2 P3 P4 P5 P6
Computação local
Comunicação global
Barreira de sincronização
BSP - Estimando PI
Método de Monte Carlo para
calcular PI
Agregador de resultados parciais
Bulk Synchronous Parallel
● Apache Hama
● BSP compatível com o Hadoop YARN
● Módulo para processamento de grafos
● Módulo para Machine Learning
Processamento de Grafos
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
Pregel
superstep 0A : 3 B : 6 C : 2 D : 1
Pregel
superstep 0
superstep 1
A : 3 B : 6 C : 2 D : 1
A : 6 B : 6 D : 6C : 2
Pregel
superstep 0
superstep 1
superstep 2
A : 3 B : 6 C : 2 D : 1
A : 6
A : 6
B : 6
B : 6
D : 6
D : 6
C : 2
C : 6
Pregel
superstep 0
superstep 1
superstep 2
superstep 3
A : 3 B : 6 C : 2 D : 1
A : 6
A : 6
A : 6
B : 6
B : 6
B : 6
D : 6
D : 6
D : 6
C : 2
C : 6
C : 6
Pregel
Apache Giraph Apache Hama
Processamento Real-time
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)
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
Dremel
Spark
Processamento em Batch Sistemas Especializados
Spark
● Desenvolvido inicialmente em Berkeley
● 80 operadores para escrita de software paralelo
● Resilient Distributed Datasets (RDDs)
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)
Spark: Contando palavras
file = spark.textFile("hdfs://...")
file.flatMap(lambda line: line.split())
.map(lambda word: (word, 1))
.reduceByKey(lambda a, b: a+b)
Spark: Contando palavras
A B C D
flatMap map reduceByKey
Spark: Resilient Distributed Datasets
Spark: Resilient Distributed Datasets
Spark: Resilient Distributed Datasets
Spark
● Comunidade crescente
● Sub-projetos:
○ GraphX - Processamento de Grafos
○ Shark - Execução de SQL
○ Spark Streaming
○ MLlib - Machine Learning
TL;DR
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
Thiago Cardoso | @tncardoso | zahpee.com
São Paulo, BRA
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
Referências
● http://parquet.io/
● A bridging model for parallel computation
● https://www.usenix.org/system/files/conference/nsdi12/nsdi12-final138.pdf
● http://research.google.com/archive/mapreduce.html
● http://dl.acm.org/citation.cfm?id=1807184
● http://research.google.com/pubs/pub36632.html
● https://hama.apache.org/
● http://hive.apache.org/
● https://giraph.apache.org/
● http://spark.apache.org/
● http://pig.apache.org/
● http://crunch.apache.org/

Más contenido relacionado

La actualidad más candente

Pré processamento de grandes dados com Apache Spark
Pré processamento de grandes dados com Apache SparkPré processamento de grandes dados com Apache Spark
Pré processamento de grandes dados com Apache SparkFelipe
 
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!Matheus Espanhol
 
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...Felipe
 
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...PGDay Campinas
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Alessandro Binhara
 
Exemplos de uso de apache spark usando aws elastic map reduce
Exemplos de uso de apache spark usando aws elastic map reduceExemplos de uso de apache spark usando aws elastic map reduce
Exemplos de uso de apache spark usando aws elastic map reduceFelipe
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosEiti Kimura
 
Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema. Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema. Natalia Raythz
 

La actualidad más candente (10)

Pré processamento de grandes dados com Apache Spark
Pré processamento de grandes dados com Apache SparkPré processamento de grandes dados com Apache Spark
Pré processamento de grandes dados com Apache Spark
 
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
 
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
 
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!!
 
Exemplos de uso de apache spark usando aws elastic map reduce
Exemplos de uso de apache spark usando aws elastic map reduceExemplos de uso de apache spark usando aws elastic map reduce
Exemplos de uso de apache spark usando aws elastic map reduce
 
Data Lakes com Hadoop e Spark: Agile Analytics na prática
Data Lakes com Hadoop e Spark: Agile Analytics na práticaData Lakes com Hadoop e Spark: Agile Analytics na prática
Data Lakes com Hadoop e Spark: Agile Analytics na prática
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
 
Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema. Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema.
 
Map Reduce
Map ReduceMap Reduce
Map Reduce
 

Similar a Modelos e Sistemas para Processamento Distribuído

Desenvolvendo Aplicações baseadas em Big Data com PySpark
Desenvolvendo Aplicações baseadas em Big Data com PySparkDesenvolvendo Aplicações baseadas em Big Data com PySpark
Desenvolvendo Aplicações baseadas em Big Data com PySparkVinícius Barros
 
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big DataDeep Tech Brasil
 
Fisl banco de dados no sql de código aberto
Fisl   banco de dados no sql de código abertoFisl   banco de dados no sql de código aberto
Fisl banco de dados no sql de código abertoSuissa
 
Map reduce novas abordagens para o processo de datamining em grandes volumn...
Map reduce   novas abordagens para o processo de datamining em grandes volumn...Map reduce   novas abordagens para o processo de datamining em grandes volumn...
Map reduce novas abordagens para o processo de datamining em grandes volumn...João Gabriel Lima
 
Queries em Big Data: Bancos de dados em GPU
Queries em Big Data: Bancos de dados em GPUQueries em Big Data: Bancos de dados em GPU
Queries em Big Data: Bancos de dados em GPUTiago Vinicius
 
Escalabilidade via Software no Expressov3
Escalabilidade via Software no Expressov3Escalabilidade via Software no Expressov3
Escalabilidade via Software no Expressov3Flávio Lisboa
 
Bigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoopBigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadooptdc-globalcode
 
Hadoop - primeiros passos
Hadoop - primeiros passosHadoop - primeiros passos
Hadoop - primeiros passosrhpinotti
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensAlessandro Binhara
 
A importância do ecossistema Java em aplicações baseadas em Big Data
A importância do ecossistema Java em aplicações baseadas em Big DataA importância do ecossistema Java em aplicações baseadas em Big Data
A importância do ecossistema Java em aplicações baseadas em Big DataVinícius Barros
 
Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Felipe Schimith Batista
 

Similar a Modelos e Sistemas para Processamento Distribuído (20)

Seminário Hadoop
Seminário HadoopSeminário Hadoop
Seminário Hadoop
 
MapReduce
MapReduceMapReduce
MapReduce
 
Desenvolvendo Aplicações baseadas em Big Data com PySpark
Desenvolvendo Aplicações baseadas em Big Data com PySparkDesenvolvendo Aplicações baseadas em Big Data com PySpark
Desenvolvendo Aplicações baseadas em Big Data com PySpark
 
Treinamento hadoop - dia3
Treinamento hadoop - dia3Treinamento hadoop - dia3
Treinamento hadoop - dia3
 
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
 
Fisl banco de dados no sql de código aberto
Fisl   banco de dados no sql de código abertoFisl   banco de dados no sql de código aberto
Fisl banco de dados no sql de código aberto
 
Map reduce novas abordagens para o processo de datamining em grandes volumn...
Map reduce   novas abordagens para o processo de datamining em grandes volumn...Map reduce   novas abordagens para o processo de datamining em grandes volumn...
Map reduce novas abordagens para o processo de datamining em grandes volumn...
 
Hadoop
HadoopHadoop
Hadoop
 
Queries em Big Data: Bancos de dados em GPU
Queries em Big Data: Bancos de dados em GPUQueries em Big Data: Bancos de dados em GPU
Queries em Big Data: Bancos de dados em GPU
 
Escalabilidade via Software no Expressov3
Escalabilidade via Software no Expressov3Escalabilidade via Software no Expressov3
Escalabilidade via Software no Expressov3
 
Bigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoopBigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoop
 
Hadoop
HadoopHadoop
Hadoop
 
Hadoop - primeiros passos
Hadoop - primeiros passosHadoop - primeiros passos
Hadoop - primeiros passos
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvens
 
A importância do ecossistema Java em aplicações baseadas em Big Data
A importância do ecossistema Java em aplicações baseadas em Big DataA importância do ecossistema Java em aplicações baseadas em Big Data
A importância do ecossistema Java em aplicações baseadas em Big Data
 
Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6
 
Treinamento hadoop - dia4
Treinamento hadoop - dia4Treinamento hadoop - dia4
Treinamento hadoop - dia4
 
Hadoop
HadoopHadoop
Hadoop
 
NoSQL Livre
NoSQL LivreNoSQL Livre
NoSQL Livre
 
Qcon Rio 2015 - Data Lakes Workshop
Qcon Rio 2015 - Data Lakes WorkshopQcon Rio 2015 - Data Lakes Workshop
Qcon Rio 2015 - Data Lakes Workshop
 

Modelos e Sistemas para Processamento Distribuído