João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Trabalho Prático 01
Implementação do Modelo
Hadoop MapReduce
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Agenda
• Ferramentas utilizadas
• Linguagens utilizadas
• Descrição Teórica da Solução
• Descrição Prática da Solução
• Desafios
• Referências
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Ferramentas utilizadas
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Ferramentas utilizadas
Sucesso
Falha
Cluster EMR
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Ferramentas utilizadas
Ciclo de Vida - Cluster
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Linguagens utilizadas
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Descrição Teórica da Solução
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Descrição Teórica da Solução
Consultas elaboradas:
I. Valor total de benefícios pagos por estado;
II. Município que recebeu o maior valor de benefícios;
III. Valor total de benefícios pagos por estado da região nordeste;
IV.Verificar se algum servidor civil ou militar do Executivo Federal é beneficiário do Bolsa Família.
(execução da função join entre a base de dados da Bolsa Família e a base de dados de
situação funcional e remuneração dos servidores civis e militares)
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Descrição Teórica da Solução
Driver: Define os diretórios de entrada e saída de dados e controla a execução do job.
Mapper: mapeia pares de chave/valor de entrada para um conjunto de pares de
chave/valor intermediário.
Reducer: reduz um conjunto de valores intermediários que compartilham uma chave para
um conjunto menor de valores. Produz um arquivo texto contendo o resultado da
consulta realizada.
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Desafios
• Escolha do Provedor
• Custos
• Execução na Nuvem
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Desafios
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Desafios
Problema Detalhe Solução
Falta de
entendimento do
serviço de EMR
Inicialmente estávamos criando clusters via a API e Console
Web iniciando o processamento dos Steps logo após
configuração, porém os Jobs manipulavam o sistema de
arquivos Hdfs ocasionando problemas no momento de
execução no EMR.
Remover qualquer
manipulação direta do Hdfs.
Diferença entre
regiões Aws
Diferenças das regiões entre o Amazon S3 e EMR
ocasionavam erros de permissões.
Configurar a mesma região
para ambos os serviços.
Versão do Hadoop Inicialmente utilizou-se a versão 2.0.0-cdh4.0.0, porém no
momento de desenvolver o Job que realiza o join entre os
arquivos a versão não dava suporte para algumas facilidades.
Atualizar a hadoop para a
versão 2.5.1
Versão Hadoop –
EMR
Ao atualizar a versão do Hadoop, os Jobs não executavam
mais nos clusters configurados anteriormente devido a
instância das máquinas escolhidas não darem suporte.
Atualizar as instâncias dos
cluster para uma versão que
dava suporte ao Hadoop
2.5.1.
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Desafios
Problema Detalhe Solução
Documentação
ineficiente
Documentação confusa do Hadoop no momento de
desenvolver o job que realiza o Join.
Minerar a internet por
exemplos.
Upload de arquivos
grandes na Amazon
S3
API oferecida é básica sendo, havendo problemas ao
realizar upload de arquivos grandes.
Utilizar ferramentas de
upload de terceiros.
Atualização dos status
do cluster
O Console Web e API não prover uma atualização dos
status do cluster e job em tempo real.
Solução Console Web:
atualizar a página de listagem
de cluster;
Solução API: desenvolver
consultas ao cluster de tempo
em tempo.
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Referências
Amazon EC2. Disponível em: https://aws.amazon.com/pt/ec2/
Amazon EMR. Disponível em: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-
what-is-emr.html
Google Cloud Plataform. Disponível em: https://cloud.google.com/compute/pricing
Map Reduce Tutorial. Disponível em: https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/
hadoop-mapreduce-client-core/MapReduceTutorial.html#Overview
Microsoft Azure. Disponível em: https://azure.microsoft.com/pt-br/pricing/free-trial/
João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Descrição Prática da Solução

Apresentacao hadoop versao final

  • 1.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Trabalho Prático 01 Implementação do Modelo Hadoop MapReduce
  • 2.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Agenda • Ferramentas utilizadas • Linguagens utilizadas • Descrição Teórica da Solução • Descrição Prática da Solução • Desafios • Referências
  • 3.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Ferramentas utilizadas
  • 4.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Ferramentas utilizadas Sucesso Falha Cluster EMR
  • 5.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Ferramentas utilizadas Ciclo de Vida - Cluster
  • 6.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Linguagens utilizadas
  • 7.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Descrição Teórica da Solução
  • 8.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Descrição Teórica da Solução Consultas elaboradas: I. Valor total de benefícios pagos por estado; II. Município que recebeu o maior valor de benefícios; III. Valor total de benefícios pagos por estado da região nordeste; IV.Verificar se algum servidor civil ou militar do Executivo Federal é beneficiário do Bolsa Família. (execução da função join entre a base de dados da Bolsa Família e a base de dados de situação funcional e remuneração dos servidores civis e militares)
  • 9.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Descrição Teórica da Solução Driver: Define os diretórios de entrada e saída de dados e controla a execução do job. Mapper: mapeia pares de chave/valor de entrada para um conjunto de pares de chave/valor intermediário. Reducer: reduz um conjunto de valores intermediários que compartilham uma chave para um conjunto menor de valores. Produz um arquivo texto contendo o resultado da consulta realizada.
  • 10.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Desafios • Escolha do Provedor • Custos • Execução na Nuvem
  • 11.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Desafios
  • 12.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Desafios Problema Detalhe Solução Falta de entendimento do serviço de EMR Inicialmente estávamos criando clusters via a API e Console Web iniciando o processamento dos Steps logo após configuração, porém os Jobs manipulavam o sistema de arquivos Hdfs ocasionando problemas no momento de execução no EMR. Remover qualquer manipulação direta do Hdfs. Diferença entre regiões Aws Diferenças das regiões entre o Amazon S3 e EMR ocasionavam erros de permissões. Configurar a mesma região para ambos os serviços. Versão do Hadoop Inicialmente utilizou-se a versão 2.0.0-cdh4.0.0, porém no momento de desenvolver o Job que realiza o join entre os arquivos a versão não dava suporte para algumas facilidades. Atualizar a hadoop para a versão 2.5.1 Versão Hadoop – EMR Ao atualizar a versão do Hadoop, os Jobs não executavam mais nos clusters configurados anteriormente devido a instância das máquinas escolhidas não darem suporte. Atualizar as instâncias dos cluster para uma versão que dava suporte ao Hadoop 2.5.1.
  • 13.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Desafios Problema Detalhe Solução Documentação ineficiente Documentação confusa do Hadoop no momento de desenvolver o job que realiza o Join. Minerar a internet por exemplos. Upload de arquivos grandes na Amazon S3 API oferecida é básica sendo, havendo problemas ao realizar upload de arquivos grandes. Utilizar ferramentas de upload de terceiros. Atualização dos status do cluster O Console Web e API não prover uma atualização dos status do cluster e job em tempo real. Solução Console Web: atualizar a página de listagem de cluster; Solução API: desenvolver consultas ao cluster de tempo em tempo.
  • 14.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Referências Amazon EC2. Disponível em: https://aws.amazon.com/pt/ec2/ Amazon EMR. Disponível em: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr- what-is-emr.html Google Cloud Plataform. Disponível em: https://cloud.google.com/compute/pricing Map Reduce Tutorial. Disponível em: https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/ hadoop-mapreduce-client-core/MapReduceTutorial.html#Overview Microsoft Azure. Disponível em: https://azure.microsoft.com/pt-br/pricing/free-trial/
  • 15.
    João Bachiega Jr./ Rodrigo Pinheiro de Almeida Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem Descrição Prática da Solução