Los datos de rastreo y de registros de Google crecieron hasta superar lo que cualquier servidor individual podía almacenar o procesar, y la respuesta natural era un servidor más grande y más caro o un programa paralelo a medida que nadie quería escribir.
La biblioteca de Dean y Ghemawat, escrita por primera vez en febrero de 2003, permitía al programador aportar solo dos funciones; el entorno de ejecución dividía la entrada, la distribuía, ordenaba por clave y reintentaba todo lo que fallaba.
A finales de 2004, Google ejecutaba cientos de programas MapReduce distintos en hasta decenas de miles de máquinas para tareas que iban desde Google News y Zeitgeist hasta grandes trabajos de grafos y de aprendizaje automático.
El artículo, publicado en OSDI 2004 y más tarde en Communications of the ACM, se convirtió en la plantilla para el procesamiento de macrodatos y fue reimplementado como el Hadoop de código abierto, lo que hizo del modelo un estándar de la industria.
Llevar el cómputo a los datos y dividirlo en map+reduce
Dividir un trabajo en map y reduce permite a ingenieros corrientes paralelizar sin escribir hilos ni paso de mensajes.
Mantener los datos en la misma máquina que su cómputo evita enviar terabytes por la red.
Reintentar las tareas map fallidas hace que una granja de PC poco fiables se comporte como una sola máquina confiable.
Cuando los datos son demasiado grandes para una sola máquina, descomponer el trabajo en piezas vergonzosamente paralelas y dejar que un planificador oculte los fallos de hardware, en lugar de comprar una máquina más grande y más costosa.
MapReduce se convirtió en el modelo por lotes estándar de Google y, a través de Hadoop, en el motor que estableció la era de los macrodatos en toda la industria. Google añadió después sistemas de más alto nivel (FlumeJava, Dataflow) a medida que el SQL interactivo sustituyó al modelo por lotes de dos pasos, y el propio MapReduce quedó eclipsado, pero su idea central de que un trabajo grande puede ser dos funciones se volvió permanente.
CONSULTA LAS PRUEBAS
Las fuentes
- 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 ·