segunda-feira, 13 de junho de 2016

Map, Combine e Reduce

Bom dia a todos,

Hoje o meu objetivo é explicar de maneira sucinta as funções Map, Reduce e Combine.
  • O hadoop trabalha dividindo o processamento em duas funções principais: Map e Reduce.
  1. Primeiro roda a função map, e com os dados resultantes da map o Reduce roda
  • O código fonte dessas duas funções são implementadas de acordo com o problema. São funções distintas e são feitas pelo programador
  • O programador além de escrever o código fonte, define os tipos de dados que essas duas funções vão receber
  • Diante das duas funções, esse modelo MapReduce fornece uma função que acontece entre uma e a outra, a Combine. é encaixada entre o Map e o Reduce

Map

  • Primeira função a ser executada
  • cada linha do arquivo/partição que chegou é passada como parâmetro para a função Map
  • Exemplo de uma função que pode ser aplicada:
  1. map({1,2,3,4}, quadrado) resulta em {1,4,9,16}, gerando uma nova lista
  • No exemplo acima cada número estava em uma linha do arquivo, sendo que cada linha pode ser processada por uma máquina
  • o Programador que é o responsável por criar o código da função Map
  • Os resultados da Map são repassados para a função Reduce
  • Paralelização e distribuiçÃo são tarefa do Framework hadoop

Reduce

  • Recebe a lista de dados que foi o resultado do Map. Comparando com o caso anterior, os dados de entrada seriam:
  1. {1,4,9,16}
  • Aplicar uma função para que a entrada seja reduzida a um único valor de saída
  • Funções de Reduce Comuns:
  1. Mínimo
  2. Média
  3. Máximo
  4. Ex:
  5. Reduce ({1,4,9,16}, mínimo) = 1
  • Também criada pelo Programador
  • Paralelização e distribuição são tarefa do Framework hadoop

Combine

  • É uma função opcional. Não é obrigatória assim como o Map e o Reduce
  • É uma função intermediária. Entre o Map e o Reduce.
  • Pegando os resultados do Map, realiza operações e repassa os resulados para o Reduce
  • Dessa forma os dados de entrada do Reduce são os dados resultantes da função Combine
  • Pós processamento do Map e Pré Processamento do Reduce
  • Também criada pelo Programador
  • Paralelização e distribuição são tarefa do Framework hadoop
  • É uma função opcional que funciona como um pré-reduce e tem o objetivo de diminuir a quantidade de dados que chega para a função Reduce
Obrigado mais uma vez pela atenção. Toda e qualquer dúvida/sugestão será bem vinda!

Nenhum comentário:

Postar um comentário