O documento descreve a implementação de um trabalho prático utilizando o modelo MapReduce no Hadoop para realizar consultas em grandes volumes de dados na nuvem. Ele detalha as ferramentas, linguagens e serviços utilizados como Amazon EMR, e discute os desafios e soluções encontradas durante o desenvolvimento do projeto.
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