SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
MapReduce
Conceitos e Aplicações
Guilherme Araújo
guilhermebaraujo@gmail.com
Introdução
Introdução
 Com o crescimento exponencial do poder computacional, a
computação ubíqua, a evolução dos sistemas de informação e o
aumento da quantidade de serviços disponibilizados aos
usuários, cresce também o volume de dados que precisam ser
processados pelos sistemas computacionais.
 Alguns exemplos:
• O sistema de geração e distribuição de energia elétrica Norte
Americano gera aproximadamente 15 TB de dados anualmente
(KOUZES et al., 2009)
• O sistema de indexação de páginas web da Google processa apro-
ximadamente 20 TB em documentos a cada iteração (DEAN;
GHEMAWAT, 2008)
3
Introdução
 Para que a computação dessa quantidade de informação seja
realizada em tempo viável, cada vez mais faz-se necessária a
exploração de paradigmas de programação:
• Dividir para Conquistar
.
.
.
• Computação Paralela
• Computação Distribuída
• MapReduce (paradigma funcional)
4
Introdução
 Porém, desenvolver software para ambientes distribuídos é
uma tarefa complexa, pois envolve uma série de conceitos e
problemas que devem ser considerados pelos programadores.
• Ex: comunicação e sincronização ente os processos de cada dispositivo.
 Motivação: Dados em Larga Escala são uma realidade...
• TeraBytes, PetaBytes, ExaBytes, ...
Facebook e Google processam PBs/dia
1PB em 1 computador ( ~ 60MB/s) 192 dias
 Necessidade
Utilizar centenas ou milhares de computadores FACILMENTE
Solução: MapReduce
5
MapReduce (MR) by Google
 Modelo e framework para processamento de dados em grande
escala proprietário do Google:
Jeffrey Dean e Sanjay Ghemawat
OSDI – 2004
Jeffrey Dean and Sanjay Ghemawat. 2004. MapReduce: simplified data processing on large clusters. In
Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation
Volume 6 (OSDI'04), Vol. 6. USENIX Association, Berkeley, CA, USA, 10-10.
 Modelo baseado apenas em duas funções Map e Reduce
 Características do framework
• Paralelização/Coordenação automática
• Otimização por localidade (processamento ocorre próximo dos dados)
• Balanceamento de carga
• Tolerância a falhas
• Escalabilidade 6
Implementações
 Centenas de empresas usando:
...
 Dezenas comercializando... $$$ Claudera, Aster, Vertica, ...
 Implementações:
• MapReduce (Google)
• Hadoop (http://hadoop.apache.org)
7
532 máquinas
640 máquinas
1600 máquinas
2500 máquinas
Conceitos
Conceitos
 O paradigma de programação MapReduce inspira-se nas
primitivas Map e Reduce presentes em diversas linguagens
funcionais.
 Essa abordagem foi adotada pois verificou-se que, em muitos
casos, era necessário mapear fragmentos dos dados de
entrada a uma chave identificadora, e então processar todos
os frag-mentos que compartilhassem a mesma chave.
9
Conceitos
 Se a quantidade de dados for grande, pode ser dividido para a
execução de diversas funções Map ao mesmo tempo, em
paralelo.
 Podemos aplicar separadamente as funções Map e Reduce a
um conjunto de dados.
10
Conceitos
 Todo o trabalho de distribuição do sistema – incluindo
problemas de comunicação, tolerância a falhas, concorrência,
etc – é abstraído, e fica a cargo do próprio framework.
 A tarefa principal do programador é implementar estas duas
funções, Map e Reduce, indicando como o mapeamento e a
redução dos dados serão compostos.
 O modelo MapReduce pode ser executado sobre uma varie-
dade de plataformas e ambientes distintos. Logo, a melhor
implementação do framework depende do ambiente alvo.
11
Conceitos
12
Modelo de Programação
Modelo de Programação
 O MapReduce é realizado em um cluster computacional de
máquinas homogêneas, constituído por basicamente dois tipos
de nós: Mestre (Master) e Escravo (Worker).
 O nó Mestre tem como função atender requisições de
execução efetuadas pelos usuários e gerenciá-las, criando
várias tarefas e delegando-as a nós Escravos.
 Os nós Escravos, por sua vez, são encarregados de executar de
fato essas tarefas, aplicando de acordo com seu tipo as funções
Map ou Reduce definidas pelo usuário.
 MapReduce também utiliza um sistema de arquivos distribuído.
14
Modelo de Programação
 Componentes do MapReduce
• Sistema de arquivo distribuído – DFS (Distributed File System)
GFS
HDFS
• Implementação MapReduce – 1 Master e N Workers
Workers (Mappers e Reducers)
• Aplicação
Ex: Wordcount, indexador, Page-rank, ...
15
Modelo de Programação
 A base de uma aplicação MapReduce consiste em dividir e
processar conjuntos de dados com o uso das funções Map e
Reduce.
 A função Map recebe uma tupla <chave,valor> como
entrada e gera um conjunto intermediário de dados, também
no formato <chave,valor>.
 A função Reduce também recebe como entrada uma tupla
<chave,valor>. Ela é executada para cada chave interme-
diária, com todos os conjuntos de valores intermediários
associados àquela chave combinados.
16
Modelo de Programação
 Exemplo de aplicação:
• Considere o problema de contar o número de
ocorrências de uma palavra em uma grande coleção de
documentos.
• A seguir será mostrado o pseudocódigo das
Funções Map e Reduce.
17
Modelo de Programação
map(String key, String value):
// Emit each word found on value together with a 1 count
// key: document name
// value: document content
wordList = value.split()
for word in wordList:
emit(word, 1);
reduce(String key, String values):
// Sums together all counts for a particular word (key)
// key: a word
// value: list of counts for key
wordCount = 0
for v in values:
wordCount += 1
emit(key, wordCount); 18
Modelo de Programação
 Cada chamada da função Map recebe como entrada o
conteúdo de um dos documentos da coleção.
 Para cada palavra do documento de entrada, a função Map
emite o valor “1” associado à chave que representa a
palavra em questão.
19
map(String key, String value):
// Emit each word found on value together with a 1 count
// key: document name
// value: document content
wordList = value.split()
for word in wordList:
emit(word, 1);
Modelo de Programação
 Cada chamada da função Reduce recebe como entrada uma
palavra e um iterador para todos os valores emitidos pela
função Map, associados com a palavra em questão.
 Todos os valores são então somados em uma tupla
contendo a palavra e seu total de ocorrências.
20
reduce(String key, String values):
// Sums together all counts for a particular word (key)
// key: a word
// value: list of counts for key
wordCount = 0
for v in values:
wordCount += 1
emit(key, wordCount);
 Diagrama de execução do algoritmo de contagem de palavras
Modelo de Programação
21
Dados Separação
dos dados
Map Ordenação Reduce Saída
Etapas do Processo
Etapas do Processo
 Execução do MapReduce
23
Etapas do Processo
 Execução de uma aplicação MR
Mestre associa tarefas Map aos Escravos livres
Escravo executa a função Map sobre o “seu dado”
Produz arquivos locais com os pares intermediários
Informa o Mestre do término
Mestre associa tarefas reduce aos Escravos livres
Escravo lê remotamente os pares dos Maperrs
aplica a função reduce
grava o resultado num arquivo no DFS 24
Etapas do Processo
 O primeiro passo do MapReduce é dividir os dados em partes e
iniciar uma série de cópias do programa nas máquinas do
cluster computacional.
25
Etapas do Processo
 O trabalho consiste em realizar M tarefas de mapeamento e R
tarefas de redução, sendo o Mestre responsável por atribuir
aos Escravos essas tarefas.
26
Etapas do Processo
 O Escravo para o qual foi atribuída uma tarefa de mapeamento
deve ler o conteúdo de uma parte do arquivo, separar todas as
tuplas e enviar para a função de mapeamento.
 As tuplas produzidas pela função MAP são armazenadas em
memória (localmente).
27
Etapas do Processo
• Os Escravos para os quais foram atribuídas tarefas de redução
devem pegar todos os valores de uma determinada chave, que
foi produzido pelas tarefas de mapeamento, e enviar para a
função Reducer.
28
Etapas do Processo
 Quando todas as tarefas de mapeamento e redução forem
concluídas, o nó Mestre emite um alerta ao programa do
usuário e retorna o controle para ele.
29
Conclusão
Conclusão
 MapReduce é fácil de usar, mesmo por programadores sem ex-
periência em processamento distribuído.
 Permite o programador focar no problema e esquecer os deta-
lhes de implementação de sistemas distribuídos.
 Uma grande variedade de problemas podem ser expressos em
MapReduce.
 Simplificou computações em larga escala de grandes volumes
de dados.
31
Referências
Referências
33
J. Dean and S. Ghemawat, “Mapreduce: Simplified data processing on large clusters,” in OSDI, 2004
Dean, J. and Ghemawat, S. 2008. MapReduce: simplified data processing on large clusters.
Communication of ACM 51, 1 (Jan. 2008), 107-113.
G. Malewicz, M. H. Austern, A. J. C. Matthew, J. C. Dehnert, I. Horn, N. Leiser, and G. Czajkowski,
“Pregel: A system for large-scale graph processing,” in SIGMOD, 2010.
M. Zharia, M. Chowdhury, T. Das, A. Dave, J. Ma, M. McCauley, M. J. Franklin, S. Shenker, and I.
Stoica, “Resilient distributed datasets: A fault-tolerant abstraction for in memory cluster
computing”, 2011.
Y. Low, J. Gonzalez, A. Kyrola, D. Bickson, C. Guestrin, and J. M. Hellerstein, “Distributed graphlab: A
framework for machine learning and data mining in the cloud,” PVLDB, vol. 5, no. 8, 2012.
A. Thusoo, J. S. Sarma, N. Jain, Z. Shao, P. Chakka, N. Zhang, S. Antony, H. Liu, and R. Murthy, “Hive a
petabyte scale data warehouse using hadoop” in ICDE, 2010.
A. F. Gates, O. Natkovich, S. Chopra, P. Kamath, S. M. Narayanamurthy, C. Olston, B. Reed, S.
Srinivasan, and U. Srivastava, “Building a high-level dataflow system on top of map-reduce: The pig
experience” PVLDB, 2009.
Apache Foundation, Hadoop, http://hadoop.apache.org/docs/current/

Weitere ähnliche Inhalte

Ähnlich wie Mapreduce - Conceitos e Aplicações

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
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionaisRoberto Oliveira
 
Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Fernando Gomes Chaves
 
Sistemas operacionais 11
Sistemas operacionais 11Sistemas operacionais 11
Sistemas operacionais 11Nauber Gois
 
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, BrazilResearch Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, BrazilHeron Carvalho
 
Scaling bayesian network parameter learning with Hadoop
Scaling bayesian network parameter learning with HadoopScaling bayesian network parameter learning with Hadoop
Scaling bayesian network parameter learning with HadoopJoão Gabriel Lima
 
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataArquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataSandro Andrade
 
Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Thiago Santiago
 
Modelos de computação distribuída no Hadoop
Modelos de computação distribuída no HadoopModelos de computação distribuída no Hadoop
Modelos de computação distribuída no HadoopBig Data Week São Paulo
 
[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
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Alessandro Binhara
 
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduceApresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduceMatteus Barbosa
 

Ähnlich wie Mapreduce - Conceitos e Aplicações (20)

MapReduce
MapReduceMapReduce
MapReduce
 
MapReduce
MapReduceMapReduce
MapReduce
 
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...
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionais
 
Seminário Hadoop
Seminário HadoopSeminário Hadoop
Seminário Hadoop
 
Map Reduce
Map ReduceMap Reduce
Map Reduce
 
Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid
 
BigData MapReduce
BigData MapReduceBigData MapReduce
BigData MapReduce
 
Sistemas operacionais 11
Sistemas operacionais 11Sistemas operacionais 11
Sistemas operacionais 11
 
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, BrazilResearch Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
 
Scaling bayesian network parameter learning with Hadoop
Scaling bayesian network parameter learning with HadoopScaling bayesian network parameter learning with Hadoop
Scaling bayesian network parameter learning with Hadoop
 
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataArquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigData
 
Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014
 
Treinamento Hadoop - dia2
Treinamento Hadoop - dia2Treinamento Hadoop - dia2
Treinamento Hadoop - dia2
 
Modelos de computação distribuída no Hadoop
Modelos de computação distribuída no HadoopModelos de computação distribuída no Hadoop
Modelos de computação distribuída no Hadoop
 
[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
 
Hadoop
HadoopHadoop
Hadoop
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!!
 
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduceApresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 

Mapreduce - Conceitos e Aplicações

  • 1. MapReduce Conceitos e Aplicações Guilherme Araújo guilhermebaraujo@gmail.com
  • 3. Introdução  Com o crescimento exponencial do poder computacional, a computação ubíqua, a evolução dos sistemas de informação e o aumento da quantidade de serviços disponibilizados aos usuários, cresce também o volume de dados que precisam ser processados pelos sistemas computacionais.  Alguns exemplos: • O sistema de geração e distribuição de energia elétrica Norte Americano gera aproximadamente 15 TB de dados anualmente (KOUZES et al., 2009) • O sistema de indexação de páginas web da Google processa apro- ximadamente 20 TB em documentos a cada iteração (DEAN; GHEMAWAT, 2008) 3
  • 4. Introdução  Para que a computação dessa quantidade de informação seja realizada em tempo viável, cada vez mais faz-se necessária a exploração de paradigmas de programação: • Dividir para Conquistar . . . • Computação Paralela • Computação Distribuída • MapReduce (paradigma funcional) 4
  • 5. Introdução  Porém, desenvolver software para ambientes distribuídos é uma tarefa complexa, pois envolve uma série de conceitos e problemas que devem ser considerados pelos programadores. • Ex: comunicação e sincronização ente os processos de cada dispositivo.  Motivação: Dados em Larga Escala são uma realidade... • TeraBytes, PetaBytes, ExaBytes, ... Facebook e Google processam PBs/dia 1PB em 1 computador ( ~ 60MB/s) 192 dias  Necessidade Utilizar centenas ou milhares de computadores FACILMENTE Solução: MapReduce 5
  • 6. MapReduce (MR) by Google  Modelo e framework para processamento de dados em grande escala proprietário do Google: Jeffrey Dean e Sanjay Ghemawat OSDI – 2004 Jeffrey Dean and Sanjay Ghemawat. 2004. MapReduce: simplified data processing on large clusters. In Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation Volume 6 (OSDI'04), Vol. 6. USENIX Association, Berkeley, CA, USA, 10-10.  Modelo baseado apenas em duas funções Map e Reduce  Características do framework • Paralelização/Coordenação automática • Otimização por localidade (processamento ocorre próximo dos dados) • Balanceamento de carga • Tolerância a falhas • Escalabilidade 6
  • 7. Implementações  Centenas de empresas usando: ...  Dezenas comercializando... $$$ Claudera, Aster, Vertica, ...  Implementações: • MapReduce (Google) • Hadoop (http://hadoop.apache.org) 7 532 máquinas 640 máquinas 1600 máquinas 2500 máquinas
  • 9. Conceitos  O paradigma de programação MapReduce inspira-se nas primitivas Map e Reduce presentes em diversas linguagens funcionais.  Essa abordagem foi adotada pois verificou-se que, em muitos casos, era necessário mapear fragmentos dos dados de entrada a uma chave identificadora, e então processar todos os frag-mentos que compartilhassem a mesma chave. 9
  • 10. Conceitos  Se a quantidade de dados for grande, pode ser dividido para a execução de diversas funções Map ao mesmo tempo, em paralelo.  Podemos aplicar separadamente as funções Map e Reduce a um conjunto de dados. 10
  • 11. Conceitos  Todo o trabalho de distribuição do sistema – incluindo problemas de comunicação, tolerância a falhas, concorrência, etc – é abstraído, e fica a cargo do próprio framework.  A tarefa principal do programador é implementar estas duas funções, Map e Reduce, indicando como o mapeamento e a redução dos dados serão compostos.  O modelo MapReduce pode ser executado sobre uma varie- dade de plataformas e ambientes distintos. Logo, a melhor implementação do framework depende do ambiente alvo. 11
  • 14. Modelo de Programação  O MapReduce é realizado em um cluster computacional de máquinas homogêneas, constituído por basicamente dois tipos de nós: Mestre (Master) e Escravo (Worker).  O nó Mestre tem como função atender requisições de execução efetuadas pelos usuários e gerenciá-las, criando várias tarefas e delegando-as a nós Escravos.  Os nós Escravos, por sua vez, são encarregados de executar de fato essas tarefas, aplicando de acordo com seu tipo as funções Map ou Reduce definidas pelo usuário.  MapReduce também utiliza um sistema de arquivos distribuído. 14
  • 15. Modelo de Programação  Componentes do MapReduce • Sistema de arquivo distribuído – DFS (Distributed File System) GFS HDFS • Implementação MapReduce – 1 Master e N Workers Workers (Mappers e Reducers) • Aplicação Ex: Wordcount, indexador, Page-rank, ... 15
  • 16. Modelo de Programação  A base de uma aplicação MapReduce consiste em dividir e processar conjuntos de dados com o uso das funções Map e Reduce.  A função Map recebe uma tupla <chave,valor> como entrada e gera um conjunto intermediário de dados, também no formato <chave,valor>.  A função Reduce também recebe como entrada uma tupla <chave,valor>. Ela é executada para cada chave interme- diária, com todos os conjuntos de valores intermediários associados àquela chave combinados. 16
  • 17. Modelo de Programação  Exemplo de aplicação: • Considere o problema de contar o número de ocorrências de uma palavra em uma grande coleção de documentos. • A seguir será mostrado o pseudocódigo das Funções Map e Reduce. 17
  • 18. Modelo de Programação map(String key, String value): // Emit each word found on value together with a 1 count // key: document name // value: document content wordList = value.split() for word in wordList: emit(word, 1); reduce(String key, String values): // Sums together all counts for a particular word (key) // key: a word // value: list of counts for key wordCount = 0 for v in values: wordCount += 1 emit(key, wordCount); 18
  • 19. Modelo de Programação  Cada chamada da função Map recebe como entrada o conteúdo de um dos documentos da coleção.  Para cada palavra do documento de entrada, a função Map emite o valor “1” associado à chave que representa a palavra em questão. 19 map(String key, String value): // Emit each word found on value together with a 1 count // key: document name // value: document content wordList = value.split() for word in wordList: emit(word, 1);
  • 20. Modelo de Programação  Cada chamada da função Reduce recebe como entrada uma palavra e um iterador para todos os valores emitidos pela função Map, associados com a palavra em questão.  Todos os valores são então somados em uma tupla contendo a palavra e seu total de ocorrências. 20 reduce(String key, String values): // Sums together all counts for a particular word (key) // key: a word // value: list of counts for key wordCount = 0 for v in values: wordCount += 1 emit(key, wordCount);
  • 21.  Diagrama de execução do algoritmo de contagem de palavras Modelo de Programação 21 Dados Separação dos dados Map Ordenação Reduce Saída
  • 23. Etapas do Processo  Execução do MapReduce 23
  • 24. Etapas do Processo  Execução de uma aplicação MR Mestre associa tarefas Map aos Escravos livres Escravo executa a função Map sobre o “seu dado” Produz arquivos locais com os pares intermediários Informa o Mestre do término Mestre associa tarefas reduce aos Escravos livres Escravo lê remotamente os pares dos Maperrs aplica a função reduce grava o resultado num arquivo no DFS 24
  • 25. Etapas do Processo  O primeiro passo do MapReduce é dividir os dados em partes e iniciar uma série de cópias do programa nas máquinas do cluster computacional. 25
  • 26. Etapas do Processo  O trabalho consiste em realizar M tarefas de mapeamento e R tarefas de redução, sendo o Mestre responsável por atribuir aos Escravos essas tarefas. 26
  • 27. Etapas do Processo  O Escravo para o qual foi atribuída uma tarefa de mapeamento deve ler o conteúdo de uma parte do arquivo, separar todas as tuplas e enviar para a função de mapeamento.  As tuplas produzidas pela função MAP são armazenadas em memória (localmente). 27
  • 28. Etapas do Processo • Os Escravos para os quais foram atribuídas tarefas de redução devem pegar todos os valores de uma determinada chave, que foi produzido pelas tarefas de mapeamento, e enviar para a função Reducer. 28
  • 29. Etapas do Processo  Quando todas as tarefas de mapeamento e redução forem concluídas, o nó Mestre emite um alerta ao programa do usuário e retorna o controle para ele. 29
  • 31. Conclusão  MapReduce é fácil de usar, mesmo por programadores sem ex- periência em processamento distribuído.  Permite o programador focar no problema e esquecer os deta- lhes de implementação de sistemas distribuídos.  Uma grande variedade de problemas podem ser expressos em MapReduce.  Simplificou computações em larga escala de grandes volumes de dados. 31
  • 33. Referências 33 J. Dean and S. Ghemawat, “Mapreduce: Simplified data processing on large clusters,” in OSDI, 2004 Dean, J. and Ghemawat, S. 2008. MapReduce: simplified data processing on large clusters. Communication of ACM 51, 1 (Jan. 2008), 107-113. G. Malewicz, M. H. Austern, A. J. C. Matthew, J. C. Dehnert, I. Horn, N. Leiser, and G. Czajkowski, “Pregel: A system for large-scale graph processing,” in SIGMOD, 2010. M. Zharia, M. Chowdhury, T. Das, A. Dave, J. Ma, M. McCauley, M. J. Franklin, S. Shenker, and I. Stoica, “Resilient distributed datasets: A fault-tolerant abstraction for in memory cluster computing”, 2011. Y. Low, J. Gonzalez, A. Kyrola, D. Bickson, C. Guestrin, and J. M. Hellerstein, “Distributed graphlab: A framework for machine learning and data mining in the cloud,” PVLDB, vol. 5, no. 8, 2012. A. Thusoo, J. S. Sarma, N. Jain, Z. Shao, P. Chakka, N. Zhang, S. Antony, H. Liu, and R. Murthy, “Hive a petabyte scale data warehouse using hadoop” in ICDE, 2010. A. F. Gates, O. Natkovich, S. Chopra, P. Kamath, S. M. Narayanamurthy, C. Olston, B. Reed, S. Srinivasan, and U. Srivastava, “Building a high-level dataflow system on top of map-reduce: The pig experience” PVLDB, 2009. Apache Foundation, Hadoop, http://hadoop.apache.org/docs/current/

Hinweis der Redaktion

  1. MapReduce para processamento de dados em larga escala Falar um pouco resumo antes de começar
  2. - Nessa seção será explicado porque o MapReduce foi desenvolvido, ou seja, tudo o que influenciou em seu desenvolvimento.
  3. Nessa seção será explicado os conceitos gerais do MapReduce. Qual é o seu paradigma, como são influenciadas as função Map e Redude, entre outras coisas importantes para serem explicadas. Através da figura será explicado o princípio do MapReduce.
  4. Nessa seção será explicado o que as funções Map e Reduce fazem, além das três etapas do modelo de programação. Exemplo de código para a função Map e outro para a função Reduce será mostrado para explicar o funcionamento. A figura será usada para exemplificar as três etapas da implementação MapReduce. Um exemplo real será mostrado para explicar como funciona o MapReduce.
  5. Nessa seção será explicado como é executado o MapReduce, mostrando as etapas do processo. Cada etapa será explicada separadamente de modo que seja de fácil entendimento.
  6. Processamento ocorram mais próximo dos dados (ou no próprio nó), a fim de evitar tráfego na rede.