uma introdu˘c~ao ao apache hama - ime-uspgold/cursos/2015/mac5742/slides/apache… · apache hama...
TRANSCRIPT
![Page 1: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/1.jpg)
Uma introducao ao Apache HamaO modelo BSP nas nuvens
Thiago Kenji Okada1
1Departamento de Ciencias da Computacao (DCC)Instituto de Matematica e Estatıstica (IME)
Universidade de Sao Paulo (USP)MAC5742 – Computacao Paralela e Distribuıda
26 de Junho de 2015
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 1 / 18
![Page 2: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/2.jpg)
Roteiro
1 IntroducaoO que e o Apache Hama?O que e o modelo BSP?
2 Apache Hama e o modelo BSPMais detalhes sobre o Apache HamaEscrevendo aplicacoes BSP no Apache Hama
3 Possıveis aplicacoes para o Apache Hama
4 Conclusoes
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 2 / 18
![Page 3: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/3.jpg)
Introducao
Roteiro
1 IntroducaoO que e o Apache Hama?O que e o modelo BSP?
2 Apache Hama e o modelo BSPMais detalhes sobre o Apache HamaEscrevendo aplicacoes BSP no Apache Hama
3 Possıveis aplicacoes para o Apache Hama
4 Conclusoes
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 3 / 18
![Page 4: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/4.jpg)
Introducao O que e o Apache Hama?
O que e o Apache Hama?
O Apache Hama e umframework de proposito geral,escrito em Java, baseado nomodelo Bulk SynchronousParallel (BSP);
Usa a plataforma do ApacheHadoop;
Desde 2012, e um projetos dealta prioridade da FundacaoApache.
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 4 / 18
![Page 5: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/5.jpg)
Introducao O que e o modelo BSP?
O que e o modelo BSP?
Modelo de programacao paralela Bulk Synchronous Parallel propostoem 1990 por Valiant;
Composto de um modelo computacional e um modelo de algoritmo:Um computador BSP e composto de:
Um conjunto de processadores, cada um com sua memoria;Um rede, que permite troca de mensagens;Um mecanismo de sincronizacao entre processadores.
Um algoritmo BSP e composto de uma sequencia de super-passos:
Processamento local;Comunicacao entre processos;Barreira de sincronismo.
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 5 / 18
![Page 6: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/6.jpg)
Introducao O que e o modelo BSP?
Super-passo no modelo BSP
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 6 / 18
![Page 7: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/7.jpg)
Apache Hama e o modelo BSP
Roteiro
1 IntroducaoO que e o Apache Hama?O que e o modelo BSP?
2 Apache Hama e o modelo BSPMais detalhes sobre o Apache HamaEscrevendo aplicacoes BSP no Apache Hama
3 Possıveis aplicacoes para o Apache Hama
4 Conclusoes
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 7 / 18
![Page 8: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/8.jpg)
Apache Hama e o modelo BSP Mais detalhes sobre o Apache Hama
Arquitetura geral do Apache Hama
Seo et al. (2010) [1]
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 8 / 18
![Page 9: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/9.jpg)
Apache Hama e o modelo BSP Mais detalhes sobre o Apache Hama
Objetivos do Apache Hama
De acordo com Seo et al. (2010) [1], as principais constribuicoes doApache Hama foram:
Compatibilidade: usa funcionalidades ja presentes no Hadoop;
Escalabilidade: usa as mesmas interfaces do Hadoop;
Flexibilidade: diversos motores de processamento diferentes, e epossıvel implementar novos;
Aplicabilidade: util para problemas envolvendo grafos e matrizes.
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 9 / 18
![Page 10: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/10.jpg)
Apache Hama e o modelo BSP Escrevendo aplicacoes BSP no Apache Hama
Estrutura basica de uma aplicacao do Apache Hama
Comecamos extendendo o metodo org.apache.hama.bsp.BSP;
Sobrescrevemos o metodo bsp() dessa classe;
Usamos uma das diversas primitivas de comunicacao disponıveis noHama para troca de mensagens;
Finalizamos com uma chamada ao metodo sync() da classeBSPPeer.
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 10 / 18
![Page 11: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/11.jpg)
Apache Hama e o modelo BSP Escrevendo aplicacoes BSP no Apache Hama
Exemplo de aplicacao no Apache Hama
@Override
public void bsp(BSPPeer<NullWritable, NullWritable, Text, Text,
Text> peer) throws IOException, SyncException,
InterruptedException {
int i;
for (i = 0; i < 100; ++i);
for (String peerName : peer.getAllPeerNames()) {
peer.send(peerName, new Text("Hello from " +
peer.getPeerName() + ", i=" + i));
}
peer.sync();
System.out.println(peer.getCurrentMessage());
}
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 11 / 18
![Page 12: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/12.jpg)
Apache Hama e o modelo BSP Escrevendo aplicacoes BSP no Apache Hama
Primitivas de comunicacao
Funcao Descricaosend(String peerName, BSPMessage msg) Envia uma mensagem para outro no.getCurrentMessage() Recebe uma mensagem da fila.getNumCurrentMessages() Obtem o numero de mensagens atuais da fila.sync() Inicia a barreria de sincronismo.getPeerName() Obtem o nome do no da tarefa atual.getPeerName(int index) Obtem o nome do no de ındice n.getNumPeers() Obtem o numero de nos.getAllPeerNames() Obtem o nome de todos os nos, incluindo o atual, em ordem crescente.
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 12 / 18
![Page 13: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/13.jpg)
Possıveis aplicacoes para o Apache Hama
Roteiro
1 IntroducaoO que e o Apache Hama?O que e o modelo BSP?
2 Apache Hama e o modelo BSPMais detalhes sobre o Apache HamaEscrevendo aplicacoes BSP no Apache Hama
3 Possıveis aplicacoes para o Apache Hama
4 Conclusoes
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 13 / 18
![Page 14: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/14.jpg)
Possıveis aplicacoes para o Apache Hama
Possıveis aplicacoes para o Apache Hama
Multiplicacao de matrizes;
Solucao de sistemas lineares;
Aprendizado de maquina;
Processamento de grandes volumes de dados em geral;
Redes sociais.
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 14 / 18
![Page 15: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/15.jpg)
Conclusoes
Roteiro
1 IntroducaoO que e o Apache Hama?O que e o modelo BSP?
2 Apache Hama e o modelo BSPMais detalhes sobre o Apache HamaEscrevendo aplicacoes BSP no Apache Hama
3 Possıveis aplicacoes para o Apache Hama
4 Conclusoes
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 15 / 18
![Page 16: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/16.jpg)
Conclusoes
Conclusoes
Ele soluciona uma classe de problemas que nao funcionam bemusando o modelo mais tradicional do Apache Hadoop (o MapReduce).
O potencial existe, o problema e que nao existe muita gentetrabalhando nele;
Concorrencia forte com o Apache Giraph e o Apache Spark.
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 16 / 18
![Page 17: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/17.jpg)
Fim da apresentacao
Fim da apresentacao
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 17 / 18
![Page 18: Uma introdu˘c~ao ao Apache Hama - IME-USPgold/cursos/2015/MAC5742/slides/Apache… · Apache Hama e o modelo BSP Escrevendo aplica˘c~oes BSP no Apache Hama Estrutura b asica de](https://reader034.vdocuments.pub/reader034/viewer/2022042623/5faf1e3954ac792cb27ff011/html5/thumbnails/18.jpg)
Fim da apresentacao
Referencia
Seo, Sangwon, et al.Hama: An efficient matrix computation with the mapreduceframework2010 IEEE Second International Conference on Cloud ComputingTechnology and Science (CloudCom) (2010): 721–726.
Thiago Kenji Okada (IME-USP) Uma introducao ao Apache Hama 26 de Junho de 2015 18 / 18