MapReduce : un marco computacional distribuido tolerante a fallas. MapReduce le permite operar sobre grandes cantidades de datos, con mucho trabajo para evitar fallas debido al hardware. MapReduce es una mala elección para calcular resultados sobre la marcha porque es lenta. (Un trabajo típico de MapReduce toma el orden de minutos u horas, no microsegundos)
Un trabajo de MapReduce toma un archivo (o algún almacén de datos) como entrada y escribe un archivo de resultados. Si desea que estos resultados estén disponibles para una aplicación, es su responsabilidad colocar estos datos en un lugar accesible. Es probable que esto sea lento, y habrá un desfase entre los valores que puede mostrar y los valores que representan su sistema en su estado actual.
Una distinción importante que debe hacerse al considerar el uso de MapReduce en la construcción de sistemas en tiempo real es la de entrenar su modelo y aplicar su modelo. Si cree que los parámetros de su modelo no cambian rápidamente, puede ajustarlos con MapReduce y luego tener un mecanismo para acceder a estos parámetros de ajuste previo cuando desee aplicar su modelo.
Storm : un sistema computacional de transmisión en tiempo real. Storm es un marco en línea, lo que significa, en este sentido, un servicio que interactúa con una aplicación en ejecución. A diferencia de MapReduce, recibe pequeños datos (no un archivo completo) a medida que se procesan en su aplicación. Defina un DAG de operaciones para realizar en los datos. Un caso de uso común y simple para Storm es el seguimiento de contadores y el uso de esa información para completar un tablero en tiempo real.
Storm no tiene nada (necesariamente) que ver con la persistencia de sus datos. Aquí, la transmisión es otra forma de decir que mantiene la información que le interesa y tira el resto. En realidad, es probable que tenga una capa de persistencia en su aplicación que ya haya registrado los datos, por lo que esta es una separación de preocupaciones buena y justificada.
Si desea saber más ...
Si desea obtener más información sobre los sistemas en tiempo real que se ajustan a los parámetros con MR y aplican los modelos de una manera diferente, aquí hay diapositivas para una charla que di sobre la construcción de motores de recomendación en tiempo real en HBase
Un excelente artículo que combina el conteo y la persistencia en tiempo real de una manera interesante es la personalización de Google News: filtrado colaborativo en línea escalable
Otro matrimonio interesante de MR y Storm es SummingBird . Summingbird le permite definir operaciones de análisis de datos que se pueden aplicar a través de Storm o MR.