MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de...
Transcript of MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de...
![Page 1: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/1.jpg)
MAPREDUCE
![Page 2: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/2.jpg)
HISTÓRICO, MOTIVAÇÃO E CENÁRIO• Grande quantidade de dados criou
uma necessidade de maior poder computacional;
• Impossibilidade de aumentar a capacidade de processamento de um único processador.
Solução: paralelização!
![Page 3: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/3.jpg)
HISTÓRICO, MOTIVAÇÃO E CENÁRIO
Gráfico 1, obtido com
dados de [6]
![Page 4: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/4.jpg)
HISTÓRICO, MOTIVAÇÃO E CENÁRIONa Google®, as paralelizações nos
algoritmos eram feitas caso a caso.
Em cada caso, problemas comuns a todas as paralelizações tinham de ser resolvidos.
Como fazer um modelo de paralelizações que não necessite de novas implementações para cada caso?
![Page 5: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/5.jpg)
CONCEITO: PARALELIZAÇÃO
Paralelizar um algoritmo é executar partes diferentes dele em unidades de processamento diferentes e obter um menor tempo de execução.
![Page 6: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/6.jpg)
CONCEITO: PARALELIZAÇÃO
Figura 2 – A paralelização de um processamento
![Page 7: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/7.jpg)
CONCEITO: PARALELIZAÇÃO
PROBLEMAS:• Como designar processamento aos
processadores?• Como garantir exclusão mútua onde
for necessário?• Como fazer o algoritmo paralelo ter os
mesmos resultados do original?
SINCRONIZAÇÃO!
![Page 8: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/8.jpg)
CONCEITO: COMPUTAÇÃO DISTRIBUÍDA• Sistema Paralelo: computador com
diversos processadores que compartilham áreas da memória e discos.
• Sistema distribuído: diversos computadores ligados em rede, capazes de executar algoritmos paralelos. Chamado também de cluster. Cada processador de um cluster é chamado de nó.
![Page 9: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/9.jpg)
O MODELO MAPREDUCEAbstração que permite que o usuário seja
isolado da camada de paralelização. [1]A paralelização depende da implementação
do modelo MapReduce. Na implementação que devem estar
garantidas as propriedades do sistema (integridade, disponibilidade, controle de acesso, não-repúdio, confidencialidade, autenticação e privacidade).
![Page 10: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/10.jpg)
MAPREDUCE: VISÃO DO USUÁRIO• Usuário programa duas funções:• map(chave, valor) -> (chaveInt ,
valorInt)• reduce(chaveInt, valoresInt) ->
(saídas)
![Page 11: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/11.jpg)
MAP(CHAVE, VALOR)
A função map(chave, valor) recebe como parâmetro de entrada um par (chave, valor) e emite na saída um par (chave intermediária, valor intermediário).
![Page 12: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/12.jpg)
REDUCE(CHAVEINT, VALORESINT)A função reduce recebe o conjunto de
valores intermediários valoresInt (saídas da função map) que estão associados à mesma chave intermediária chaveInt e emite como saída os valores finais na saída para a mesma chave.
![Page 13: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/13.jpg)
A IMPLEMENTAÇÃO DO MAPREDUCE• Diversas implementações são
possíveis:• Cenários diferentes demandam
implementações diferentes.
![Page 14: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/14.jpg)
A IMPLEMENTAÇÃO DA GOOGLE®• Características dos cluster’s
disponíveis:• Dispositivos de rede e processamento
comuns (x86 dual-core, discos IDE);• Cluster com centenas ou milhares de
nós.• Sistema de arquivos distribuído
próprio, o GFS [5]
![Page 15: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/15.jpg)
A IMPLEMENTAÇÃO DA GOOGLE® (2)• Usuário implementa as funções map e
reduce e chama uma função MapReduce dentro do próprio programa
• A implementação fragmenta o arquivo de entrada do usuário (64 MB/parte)
• As funções map e reduce são copiadas para os nós do cluster
• Mestre X trabalhadores
![Page 16: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/16.jpg)
A IMPLEMENTAÇÃO DA GOOGLE® (3)• O mestre: tarefas a trabalhadores
ociosos. • Trabalhadores mappers recebem um
fragmento do arquivo de entrada cada, extraem uma chave e valor dele e chamam a função map.
• Pares intermediários ficam guardados na memória
• Escritos em disco periodicamente• Mestre toma nota dos locais dos pares
intermediários.
![Page 17: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/17.jpg)
A IMPLEMENTAÇÃO DA GOOGLE® (4)• O mestre designa um nó para a tarefa
de reduce com os locais dos valores intermediários da sua chave.
• O nó de redução lê todos os valores intermediários relacionados àquela chave intermediária e chama a função reduce, que é executada e escreve em um arquivo de saída o resultado final da execução.
• Implementação retorna ao programa do usuário
![Page 18: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/18.jpg)
A IMPLEMENTAÇÃO DA GOOGLE® (5)
Figura 3 – Esquema da implementação da Google®
![Page 19: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/19.jpg)
HADOOP• Uma implementação de código aberto
do modelo MapReduce [4]• Utiliza interfaces Java® para o
programador implementar as funções map e reduce.
• Muito parecido com a implementação da Google ®, mas é flexível com relação às máquinas em que roda.
![Page 20: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/20.jpg)
AMBIENTES OPORTUNÍSTICOS• Ciclos ociosos de máquinas podem
ser usados para executar tarefas de map/reduce.
• Projeto MOON[7]• Recursos disponíveis por curtíssimos
períodos de tempo
![Page 21: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/21.jpg)
TRABALHOS FUTUROS• Implementação simplificada de
MapReduce• Ambientes oportunísticos como
serviço:• Como garantir um bom serviço?• Executar código de interesse nas
máquinas de usuários de aplicativos web.
![Page 22: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/22.jpg)
REFERÊNCIAS[1] DEAN, Jeffrey; GHEMAWAT, Sanjay. MapReduce:
Simplied Data Processing on Large Clusters. Communications of the ACM, v. 51, n. 1, p. 107-113, jan. 2008. Disponível em: <http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/pt-BR//archive/mapreduce-osdi04.pdf>. Acesso em: 23 maio 2012.
[2] LÄMMEL, Ralf. Google's MapReduce Programming Model - Revisited. Science of Computer Programming, v.70, n. 1, p. 1-30, jan. 2008. Disponível em: <http://web.cs.wpi.edu/~cs3013/a11/Papers/Lammel_MapReduce_Revisited.pdf>. Acesso em: 23 maio 2012.
![Page 23: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/23.jpg)
REFERÊNCIAS (2)[3] VENKATESH, Kirpal A.; NEELAMEGAM, K.; REVATHY,
R. Usando MapReduce e balanceamento de carga em nuvens, out. 2010. Disponível em: <http://www.ibm.com/developerworks/br/java/library/cl-mapreduce/#N1010A>. Acesso em: 24 abr. 2012.
[4] HADOOP. Hadoop 1.0.2 documentation. Disponível em: <http://hadoop.apache.org/common/docs/current/index.html>. Acesso em: 24 abr. 2012.
[5] GHEMAWAT, Sanjay; GOBIOFF, Howard; LEUNG, Shun-Tak. The Google File System.ACM SIGOPS Operating Systems Review - SOSP '03, v. 37, n.5, p. 29-43, dez. 2003. Disponível em: <http://www.cs.brown.edu/courses/cs295-11/2006/gfs.pdf>. Acesso em: 23 maio 2012.
![Page 24: MAPREDUCE. HISTÓRICO, MOTIVAÇÃO E CENÁRIO Grande quantidade de dados criou uma necessidade de maior poder computacional; Impossibilidade de aumentar a.](https://reader035.fdocumentos.tips/reader035/viewer/2022081602/552fc130497959413d8d4afb/html5/thumbnails/24.jpg)
REFERÊNCIAS (3)[6] INTEL. Microprocessor Quick Reference Guide.
Disponível em: <http://www.intel.com/pressroom/kits/quickrefyr.htm>. Acesso em: 23 maio 2012.
[7] Heshan Lin; ARCHULETA, Jeremy; Xiaosong Ma; Wu-chun Feng; Zhe Zhang; GARDNER, Mark. MOON: MapReduce On Opportunistic eNvironments. Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing - ACM HPDC '10, p. 95-106, 2010. Disponível em: <http://eprints.cs.vt.edu/archive/00001089/01/moon.pdf>. Acesso em: 24 maio 2012.