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.
- 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:
- 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,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:
- Mínimo
- Média
- Máximo
- Ex:
- 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