TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Hadoop - MapReduce

Por:   •  18/6/2015  •  Trabalho acadêmico  •  901 Palavras (4 Páginas)  •  240 Visualizações

Página 1 de 4

MapReduce - Hadoop

Henrique santana, Lincoln soares

MapReduce - Conceito

O MapReduce foi desenvolvido como uma forma de processar grandes volumes de dados distribuindo o processamento em muitas máquinas para que seja processado em um tempo aceitável. Esta distribuição implica em processamento paralelo dado que a mesma função é aplicada em todas as maquinas, porém em conjuntos de dados diferentes em cada um deles.

MapReduce - História

Diante de um grande problema computacional dos dias atuais, que é o de armazenar, manipular e analisar de forma inteligente uma grande quantidade existente, alguns pesquisadores e engenheiros da computação aprimoraram e construiram soluções para tornar mais eficiente o acesso e analise a grandes bases de dados. Na primeira decada de 2000, dois engenheiros do Google, Jeffrey Dean e Sanjay Ghemawat, desenvolveram a tecnologia MapReduce para otimizar a indexação e catalogação de paginas web e suas ligações.

MapReduce - Tarefa Map

Etapa responsável por receber dados organizados no formato , podendo ser uma linha de um documento de texto ou conteúdo gerado por um banco de dados. A função retorna uma lista com zero ou mais tuplas de de acordo com a implementação do processamento.

MapReduce - Tarefa Shuffle (Intermediária)

Etapa realizada pela biblioteca MapReduce que é responsável por organizar o retorno da função Map, atribuindo para cada entrada de cada Reduce todos os valores associados a uma mesma chave. Essa é a etapa que realiza mais troca de dados, pois os dados de diversos nós são transferidos entre si para a realização das tarefas de redução.

MapReduce - Tarefa Reduce

Nessa etapa, cada tarefa de Reduce consome o conjunto de tuplas atribuído a ela. Para cada tupla, uma função definida pelo usuário é chamada, transformando a em uma saída formada por uma lista de tuplas . 

MapReduce - Arquitetura

MapReduce - Arquitetura - Preparação

O mecanismo do MapReduce divide os arquivos de entrada em blocos de tamanho fixo, normalmente entre 16MB e 64MB. Em seguida, copia o programa de usuário que contém as funções correspondentes ao Map e ao Reduce no cluster de maquinas.

MapReduce - Arquitetura - Definição dos processos mestre e dos escravos

Na arquitetura há um único processo mestre e um ou vários processos escravos. Um processo mestre é responsável por orquestrar os processos escravos atribuindo a cada um deles uma tarefa map ou reduce.

MapReduce - Arquitetura - Tarefa Map

Cada escravo que executa a tarefa Map lê o conteudo de um bloco de entrada, definido pelo processo mestre aquele nó escravo. Os resultados dos pares intermediarios produzidos pela função map são armazenados na memoria do computador escravo.

MapReduce - Arquitetura - Tarefa Shuffle (Arquivos Intermediários)

Os pares intermediários são gravados no disco local do computador intermediário. É necessario que os arquivos locais sejam identificados pelo processo mestre, com a finalidade de reorganizá-los para o passo seguinte do processo.

MapReduce - Arquitetura - Leitura Remota

Ao ser notificado pelo mestre sobre os endereços dos arquivos intermediarios, o processo escravo recupera remotaneamente o conjunto de pares e inicia o processo de ordenamento e agrupamento sobre os dados parciais.

MapReduce - Arquitetura - Tarefa Reduce

O processo escravo com a tarefa Reduce itera sobre os dados parciais e para cada chave parcial única, ele passa a chave e o conjunto de valores parciais a função Reduce. A saída é acrescentada a um arquivo final. O resultado final gerado pelo processo apresenta um conjunto de arquivos, um para cada nó escravo que executou a função reduce.

Apache Hadoop - Definição

O Apache Hadoop é um framework open source para o armazenamento e processamento de dados em larga escala. O Hadoop oferece como ferramentas principais o MapReduce, responsável pelo processamento distribuído, e o Hadoop Distributed File System (HDFS), para armazenamento de grandes conjuntos de dados, também de forma distribuída. Embora recente, o Apache Hadoop tem se destacado como uma ferramenta eficaz, sendo utilizado por grandes corporações como IBM, Oracle, Facebook, Yahoo!, entre outras.

 

Apache Hadoop - MapReduce

O Haddop MapReduce pode ser visto como um paradigma de programação que expressa computação distribuída como uma sequencia de operações distribuídas em conjuntos de dados. Quando aplicado ao ambiente distribuído, como em um aglomerado, o Hadoop MapReduce executa um conjunto de funções Map e Reduce definidas pelo usuário. A computação distribuída é controlada pelo framework, utilizando seu sistema de arquivos (HDFS) e os protocolos de comunicação e troca de mensagens para executar uma aplicação.

Apache Hadoop - HDFS (Hadoop Distributed FileSystem)

O HDFS é um sistema de arquivos criado para armazenar arquivos muito grandes de forma distribuída. O conceito sobre o qual o HDFS foi construído é o chamado write-once, read-many-times, ou seja, escreva uma vez, leia muitas vezes. O HDFS necessita de dois tipos de nós, namenode (mestre) e datanodes (escravos). O mestre comanda todo sistema de arquivos, mantendo metadados para todos os arquivos e diretorios do sistema. Os escravos guardam e recuperam blocos, quando mandados pelo nó mestre e enviam relatórios ao mestre periodicamente com a lista de todos os blocos que eles estão armazenando.

Apache Hadoop - Arquitetura

Apache Hadoop - MapReduce - Exemplo

Apache Hadoop - Soluções não adequadas

  • Problemas não paralelizáveis ou com grande dependência de dados

  • Processamento de arquivos pequenos

  • Problema com muito processamento em poucos dados

Aplicação - Facebook

  • Grande quantidade de dados;

  • 2 terabytes adicionados por dia descarregados no sistemas de arquivos Hadoop;

  • É necessário processar essa grande quantidade de dados;

  • Adoção do Hadoop em 2007;

  • Armazenamento em tabelas – Consultas em SQL ou MapReduce;

  • Outras vantagens: Propaganda, SPAM.

Apache Hadoop - Vantagens

  • Código aberto

  • Economia*

  • Robustez

  • Escalabilidade

  • Simplicidade

Apache Hadoop - Desvantagens

  • Único nó mestre*

  • Dificuldade no gerenciamento aglomera

Importante

...

Baixar como (para membros premium)  txt (6.2 Kb)   pdf (73.8 Kb)   docx (14.3 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com