Definição – o que significa MapReduce?
MapReduce é um modelo de programação introduzido pelo Google para processar e gerar grandes conjuntos de dados em clusters de computadores.
O Google primeiro formulou a estrutura com o objetivo de servir à 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 MapReduce benéfica porque as rotinas da biblioteca podem ser usadas para criar programas paralelos sem nenhuma preocupação com a comunicação infra-cluster, monitoramento de tarefas ou processos de tratamento de falhas.
O MapReduce é executado em um grande cluster de máquinas comuns e é altamente escalonável. Possui várias formas de implementação fornecidas por múltiplas linguagens de programação, como Java, C # e C ++.
Definirtec explica MapReduce
A estrutura MapReduce tem duas partes:
- Uma função chamada “Mapa”, que permite que diferentes pontos do cluster distribuído distribuam seu trabalho
- Uma função chamada “Reduzir”, que é 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ó do cluster são esperados quando o trabalho for concluído.
Uma tarefa é transferida de um nó para outro. Se o nó mestre perceber que um nó ficou em silêncio por um intervalo maior do que o esperado, o nó principal executará o processo de redesignação para a tarefa congelada / atrasada.
A estrutura MapReduce é inspirada nas funções “Map” e “Reduce” usadas na programação funcional. O processamento computacional ocorre em dados armazenados em um sistema de arquivos ou em um banco de dados, que pega 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 paralelizados automaticamente e executados em um grande cluster de máquinas comuns. O sistema de tempo de execução trata do particionamento dos dados de entrada, agendamento da execução do programa em um conjunto de máquinas, tratamento de falha de máquina e gerenciamento da comunicação necessária entre máquinas. Os programadores sem qualquer 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 link da Web, estatísticas de log de acesso à Web, agrupamento de documentos, aprendizado de máquina e tradução automática de estatísticas.