Post on 06-Apr-2017
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 utilizadasCiclo 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
DesafiosProblema 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
DesafiosProblema 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ênciasAmazon 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