Hace mucho, mucho tiempo, en una galaxia muy, muy lejana, vivía un joven y enérgico comandante espacial llamado Sheriff Sequential . Aunque gobernó el pequeño planeta de Pentium Single-Core 1.3ghz, albergaba la ambición de gobernar todos los planetas de la placa base , su sistema solar. Lamentablemente, su inclinación a ser un ejército de un solo hombre y realizar todas las tareas paso a paso le impedía alcanzar su sueño. Era imposible para él defender personalmente más de un planeta a la vez.
Descargo de responsabilidad : esta respuesta está dirigida a personas con experiencia en CS que luchan con los conceptos de MapReduce, es decir, aquellos que pueden reírse al ver la terminología de sistemas operativos comunes que se utiliza en un contexto de cuento de hadas. Para una breve y excelente introducción de MapReduce dirigida a todos, consulte la otra respuesta: la respuesta de Gautam Singaraju a las explicaciones intuitivas: ¿Cuál es una explicación intuitiva de MapReduce?
Pero los soñadores de la época son hombres peligrosos, y también lo fue nuestro Sheriff, cuando se propuso convertir sus sueños en realidad. Tomó un descanso de sus deberes del sheriff y se inscribió en un curso de posgrado sobre estrategias militares para la guerra multinúcleo . En consecuencia, sus ojos se abrieron a un nivel completamente diferente del juego. Engendró un pequeño ejército de hilos de guerrero y entrenó a cada uno de ellos para realizar todas las tareas necesarias para capturar y gobernar un planeta. Cada Hilo fue enviado a conquistar un planeta diferente, y el Sheriff se echó a reír de alegría al recibir mensajes de sus Hilos en busca de los pobres procesos del sheriff local en cada planeta. Comenzó a llamarse Comandante Concurrente .
- ¿Cuál es la diferencia entre programación dinámica y recursividad?
- ¿Cuál es la forma más rápida y eficiente de hacer una sustitución / sustitución de cadenas dentro de una cadena grande con JavaScript?
- ¿Es posible implementar algoritmos de aprendizaje automático en lenguaje ensamblador?
- ¿Los investigadores que elaboran algoritmos útiles ganan mucho dinero cuando sus algoritmos se aplican ampliamente en la industria?
- ¿Cómo mantiene Google en secreto su algoritmo de sus empleados cuando son sus empleados quienes lo prueban?
Pero si algunas cosas tienen un límite superior, la ambición no es una de ellas. El Comandante Concurrente ahora fijó su vista en gobernar toda la galaxia, llamada Big Data . Sin embargo, este era un juego de núcleos completamente diferente. Dado que los otros planetas en la galaxia estaban tan lejos el uno del otro, sus Hilos no podían esperar compartir recursos entre ellos durante sus misiones de ataque. Además, muchos de los planetas albergaban formas extrañas de datos que eran en gran parte desconocidos, desestructurados e indómitos. Sabía que todos los planetas habían formado pequeños grupos para proteger sus datos, y lucharon bajo la misma Clave , pero era imposible saber de antemano qué planeta estaba asociado con cada Clave.
Muchos antiguos aconsejaron a nuestro Comandante que construyera un gran ejército de Procesos Especializados que pudieran operar independientemente en su porción asignada de datos, analizar su Clave y calcular los resultados deseados para la victoria. Pero nuestro Comandante tenía la intuición de que un ejército así sería demasiado costoso de construir, y sería imposible generalizarlo a futuras guerras. Además, cada proceso puede no ser capaz de procesar completamente los Datos de su planeta de forma aislada, y puede requerir la colaboración con otros procesos cercanos para vencer a los planetas que lucharon bajo la misma Clave. En cuyo caso, la comunicación entre procesos llevaría mucho tiempo.
En cambio, el Comandante se embarcó en una peregrinación al planeta sagrado de Mountain View , donde buscó respuestas de los sabios Dean y Ghemawat . No estaba decepcionado. Iluminado, regresó a su planeta de origen y se dispuso a formar un ejército de dos tipos de soldados: mapeadores , que visitarían un planeta y analizarían todas las formas de datos presentes allí para exponer su clave, y reductores , cada uno de los cuales azotaría los Datos que dejaron múltiples Mappers, y proporcionan un solo golpe mortal para asegurar la victoria sobre todos los planetas que luchan bajo la misma Clave. Al dividir el trabajo en dos pasos, cada Mapper pudo procesar rápidamente una sola porción de Datos y pasar al siguiente planeta, sin tener que colaborar con otros Mappers. Un reductor vendría más tarde y terminaría el trabajo al terminar todos los planetas que poseían datos de la misma clave. Todo el tiempo, el Comandante dirigiría a todo su ejército desde la comodidad de su planeta de origen. Era una idea poderosa, cuyo momento había llegado.
La guerra estaba en marcha. A medida que su ejército de Mapeadores y Reductores devastó sistemáticamente todos los Big Data, nuestro Comandante renombró a sí mismo, Mayor MapReduce . La guerra terminó pronto y el comandante presidió una reunión general de su ejército. Compartieron historias de lo geniales que eran para construir un ejército de tan bajo costo basado en una idea poderosa y derrotaron a los ejércitos que estaban construyendo cosas súper avanzadas que no escalarían tanto.
Alguien le preguntó a nuestro Mayor, “¿Qué sigue?”. Él se rió entre dientes y miró hacia la Nube .