Índice:
Definição - O que significa o MapReduce?
O MapReduce é um modelo de programação introduzido pelo Google para processar e gerar grandes conjuntos de dados em clusters de computadores.
O Google formulou a estrutura pela primeira vez com a finalidade de atender à indexação de páginas da Web do Google, e a nova estrutura substituiu os algoritmos de indexação anteriores. Os desenvolvedores iniciantes consideram a estrutura do MapReduce benéfica porque as rotinas da biblioteca podem ser usadas para criar programas paralelos sem se preocupar com comunicação por infra-cluster, monitoramento de tarefas ou processos de manipulação de falhas.
O MapReduce é executado em um grande cluster de máquinas comuns e é altamente escalável. Possui várias formas de implementação fornecidas por várias linguagens de programação, como Java, C # e C ++.
Techopedia explica o MapReduce
A estrutura do MapReduce possui duas partes:
- Uma função chamada "Mapa", que permite que diferentes pontos do cluster distribuído distribuam seu trabalho
- Uma função chamada "Reduzir", projetada para reduzir a forma final dos resultados dos clusters em uma saída
A principal vantagem da estrutura MapReduce é sua tolerância a falhas, em que relatórios periódicos de cada nó no cluster são esperados quando o trabalho é concluído.
Uma tarefa é transferida de um nó para outro. Se o nó principal perceber que um nó ficou em silêncio por um intervalo maior que o esperado, o nó principal executará o processo de reatribuição para a tarefa congelada / atrasada.
A estrutura do MapReduce é inspirada nas funções "Map" e "Reduce" usadas na programação funcional. O processamento computacional ocorre nos dados armazenados em um sistema de arquivos ou em um banco de dados, que utiliza um conjunto de valores de chave de entrada e produz um conjunto de valores de chave de saída.
Todos os dias, vários programas MapReduce e trabalhos MapReduce são executados nos clusters do Google. Os programas são automaticamente paralelizados e executados em um grande cluster de máquinas de commodities. O sistema de tempo de execução lida com o particionamento dos dados de entrada, agendando a execução do programa em um conjunto de máquinas, o tratamento de falhas da máquina e o gerenciamento da comunicação entre máquinas necessária. Programadores sem nenhuma experiência com sistemas paralelos e distribuídos podem usar facilmente os recursos de um grande sistema distribuído.
O MapReduce é usado em grep distribuído, classificação distribuída, reversão de gráfico de links da Web, estatísticas de log de acesso à Web, agrupamento de documentos, aprendizado de máquina e tradução automática de estatísticas.
