uma introdu˘c~ao ao apache hama - ime-uspgold/cursos/2015/mac5742/slides/apache… · apache hama...

18
Uma introdu¸ ao ao Apache Hama O modelo BSP nas nuvens Thiago Kenji Okada 1 1 Departamento de Ciˆ encias da Computa¸c˜ ao (DCC) Instituto de Matem´ atica e Estat´ ıstica (IME) Universidade de S˜ ao Paulo (USP) MAC5742 – Computa¸c˜ ao Paralela e Distribu´ ıda 26 de Junho de 2015 Thiago Kenji Okada (IME-USP) Uma introdu¸ ao ao Apache Hama 26 de Junho de 2015 1 / 18

Upload: others

Post on 13-Aug-2020

8 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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