Pregunta

Puede alguien amablemente me dicen acerca de las compensaciones involucradas hora de elegir entre la tormenta y MapReduce de Hadoop Cluster para el procesamiento de datos? Por supuesto, aparte de la obvia, que Hadoop (procesamiento a través de MapReduce en un clúster Hadoop) es un sistema de procesamiento por lotes, y la tormenta es un sistema de procesamiento en tiempo real.

He trabajado un poco con Hadoop Eco System, pero no he trabajado con la tormenta. Después de mirar a través de una gran cantidad de presentaciones y artículos, todavía no he sido capaz de encontrar una respuesta satisfactoria y completa.

Nota: El término compensación aquí no pretende comparar a cosas similares. Está destinado a representar las consecuencias de la obtención de resultados en tiempo real que están ausentes de un sistema de procesamiento por lotes.

¿Fue útil?

Solución

MapReduce : A tolerante a fallos distribuida marco computacional. MapReduce le permite operar sobre grandes cantidades de Datos- con una gran cantidad de trabajo realizado para evitar el fracaso debido a hardware. MapReduce es una mala elección para el cálculo de los resultados sobre la marcha, ya que es lento. (Un trabajo típico MapReduce toma del orden de minutos o horas, no microsegundos)

Un trabajo MapReduce toma un archivo (o algún almacén de datos) como una entrada y escribe un archivo de resultados. Si desea que estos resultados a disposición de una aplicación, es su responsabilidad para poner estos datos en un lugar que sea accesible. Esto es probablemente lento, y habrá un desfase entre los valores que se pueden mostrar, y los valores que representan el sistema en su estado actual.

Una distinción importante que hacer cuando se considera el uso de MapReduce en la construcción de sistemas de tiempo real es el de la formación de su modelo, y la aplicación de su modelo. Si piensa que sus parámetros del modelo no cambian rápidamente, puede encajar con MapReduce, y luego tener un mecanismo para acceder a estos parámetros pre-ajuste cuando se quiere aplicar su modelo.

Tormenta : Un tiempo real, transmisión de sistema computacional. Tormenta es el marco en línea, lo que significa, en este sentido, un servicio que interactúa con una aplicación en ejecución. En contraste con MapReduce, que recibe pequeñas piezas de datos (no un archivo completo) a medida que se procesan en su aplicación. Se define un DAG de operaciones a realizar sobre los datos. Un caso común y un uso sencillo para la tormenta es el seguimiento de los contadores, y utilizar esa información para llenar un panel en tiempo real.

Tormenta no tiene nada (necesariamente) que ver con la persistencia de sus datos. Aquí, el streaming es otra forma de decir mantener la información que te interesa y tirar el resto. En realidad, es probable que tenga una capa de persistencia en su aplicación que ya ha grabado los datos, y por lo que esta una buena separación y justificada de preocupaciones.

Si quieres saber más ... Si desea obtener más información sobre los sistemas de tiempo real que que los parámetros de ajuste con RM y se aplican los modelos de una manera diferente aquí son diapositivas para una charla que di en la construcción de motores de recomendación en tiempo real sobre HBase.

Un excelente papel que el conteo se casa en tiempo real y la persistencia de una manera interesante es Google Noticias Personalización: Escalable de colaboración en línea filtrado

Otro matrimonio interesante de la RM y la tormenta es SummingBird . Summingbird le permite definir las operaciones de análisis de datos que se pueden aplicar a través de la tormenta o MR.

Otros consejos

Esto es un poco como preguntar acerca de las soluciones de compromiso entre la sartén y el cajón de los cubiertos. No son dos cosas que comparar, en realidad. Es posible utilizarlos juntos como parte de un proyecto más amplio.

Hadoop en sí no es una cosa, sino un nombre para una federación de los servicios, al igual que el HDFS, Colmena, HBase, MapReduce, etc. tormenta es algo que se utiliza con algunos de estos servicios, como HDFS o HBase. Es un marco corriente de procesamiento. Hay otros dentro del ecosistema de Hadoop extendida, como Spark streaming.

¿Cuándo elegir un marco de flujo de procesamiento? cuando se necesita para reaccionar a los nuevos datos en tiempo casi real. Si necesita este tipo de herramienta, de implementar este tipo de herramienta, también.

Licenciado bajo: CC-BY-SA con atribución
scroll top