Os dados de rastreamento e de logs do Google cresceram além do que qualquer servidor único poderia armazenar ou processar, e a resposta natural era um servidor maior e mais caro ou um programa paralelo sob medida que ninguém queria escrever.
A biblioteca de Dean e Ghemawat, escrita pela primeira vez em fevereiro de 2003, permitia que um programador fornecesse apenas duas funções; o runtime dividia a entrada, a enviava, ordenava por chave e repetia qualquer tarefa que falhasse.
No final de 2004, o Google executava centenas de programas MapReduce distintos em até dezenas de milhares de máquinas para tarefas que iam do Google News e do Zeitgeist a grandes trabalhos de grafos e de aprendizado de máquina.
O artigo, publicado na OSDI 2004 e mais tarde na Communications of the ACM, tornou-se o modelo para o processamento de big data e foi reimplementado como o Hadoop de código aberto, o que fez do modelo um padrão da indústria.
Levar a computação até os dados e dividi-la em map+reduce
Dividir uma tarefa em map e reduce permite que engenheiros comuns paralelizem sem escrever threads ou passagem de mensagens.
Manter os dados na mesma máquina que a computação evita enviar terabytes pela rede.
Repetir as tarefas de map que falham faz uma fazenda de PCs não confiáveis se comportar como uma única máquina confiável.
Quando os dados são grandes demais para uma única máquina, decomponha a tarefa em partes embaraçosamente paralelas e deixe um escalonador ocultar as falhas de hardware, em vez de comprar uma máquina maior e mais cara.
O MapReduce tornou-se o modelo de processamento em lote padrão do Google e, por meio do Hadoop, o motor que estabeleceu a era do big data em toda a indústria. O Google mais tarde acrescentou sistemas de nível mais alto (FlumeJava, Dataflow) à medida que o SQL interativo substituiu o modelo de processamento em lote de duas etapas, e o próprio MapReduce foi eclipsado, mas sua ideia central de que uma grande tarefa pode ser duas funções tornou-se permanente.
CONFIRA AS EVIDÊNCIAS
As fontes
- MapReduce: Simplified Data Processing on Large Clusters (OSDI 2004) USENIX · usenix.org
- Sorting the World: Google Invents New Way to Manage Data Wired · wired.com ·