bigdata apache-storm apache-spark

bigdata - Apache Spark vs. Apache Storm



apache-storm apache-spark (1)

Apache Spark es una plataforma de análisis de datos distribuidos en memoria, principalmente dirigida a acelerar los trabajos de análisis por lotes, los trabajos iterativos de aprendizaje automático, la consulta interactiva y el procesamiento de gráficos.

Una de las principales distinciones de Spark es su uso de RDD o Datasets Distribuidos Resilientes. Los RDD son excelentes para canalizar operadores paralelos para el cálculo y son, por definición, inmutables, lo que permite a Spark una forma única de tolerancia a fallas basada en información de linaje. Si está interesado, por ejemplo, en ejecutar un trabajo de Hadoop MapReduce mucho más rápido, Spark es una excelente opción (aunque se deben considerar los requisitos de memoria).

Apache Storm se centra en el procesamiento de flujo o lo que algunos llaman procesamiento de eventos complejos. Storm implementa un método tolerante a fallas para realizar un cálculo o canalización de múltiples cómputos en un evento a medida que fluye en un sistema. Uno podría usar Storm para transformar datos no estructurados a medida que fluye en un sistema en un formato deseado.

Storm and Spark se centran en casos de uso bastante diferentes. La comparación más "manzanas con manzanas" sería entre Storm Trident y Spark Streaming . Como los RDD de Spark son intrínsecamente inmutables, Spark Streaming implementa un método para "procesar" las actualizaciones entrantes en intervalos de tiempo definidos por el usuario que se transforman en sus propios RDD. Los operadores paralelos de Spark pueden realizar cálculos en estos RDD. Esto es diferente de Storm, que trata cada evento individualmente.

Una diferencia clave entre estas dos tecnologías es que Spark realiza cálculos Data-Parallel mientras Storm realiza cálculos de Tarea-Paralelo . Cualquiera de los diseños hace intercambios que valen la pena conocer. Sugeriría ver estos enlaces.

Editar: descubrí this hoy

¿Cuáles son las diferencias entre Apache Spark y Apache Storm ? ¿Cuáles son los casos de uso adecuados para cada uno?