MapReduce: Simplified Data Processing on Large Clusters

MapReduce is a programming model and an associated implementation for processing and generating large data sets. Os usuários especificam uma função de mapa que processa um par chave / valor para gerar um conjunto de pares chave/valor intermediário, e uma função de redução que reúne todos os valores intermediários associados com a mesma chave intermediária. Muitas tarefas do mundo real são expressáveis neste modelo, como mostrado no papel.

programas escritos neste estilo funcional são automaticamente paralelos e executados em um grande conjunto de máquinas de commodities. O sistema de tempo de execução cuida dos detalhes de particionamento dos dados de entrada, agendando a execução do programa através de um conjunto de máquinas, manipulação de falhas da máquina, e Gerindo a comunicação necessária entre máquinas. Isto permite aos programadores sem qualquer experiência com sistemas paralelos e distribuídos utilizar facilmente os recursos de um grande sistema distribuído.

nossa implementação do MapReduce funciona em um grande conjunto de máquinas de commodities e é altamente escalável: um típico processo de computação MapReduce muitos terabytes de dados em milhares de máquinas. Os programadores acham o sistema fácil de usar: centenas de programas de MapReduce foram implementados e mais de mil trabalhos de MapReduce são executados em clusters do Google Todos os dias.

Slides HTML