Como anillo al dedo me viene este artículo de Shivangi Gupta comparando las capacidades de Spark Streaming, Kafka Streaming y Flink:
Apache Spark es un framework open-source para computación en cluster con una base de usuarios global muy alta. Está escrito en Scada y ofrece APIs en Scala, Java, R y Python.
Apache Flink es una plataforma open-source para procesamiento distribuido de streams y batch. El core de Flink es un motor de procesamiento de datos que provee distribución de datos, comunicación y tolerancia a fallos. Sobre esto han construido procesamiento batch.
Apache Kafka es un plataforma de streaming distribuida , para transformaciones completes prove un API de Streams integrado, que permite que una aplicación actúe como un procesador de streams, consumiendo un input stream de uno o más tópicos y produciendo un stream de salida sobre uno o más tópicos de salida.
· Tanto Spark Streaming como Flink provee garantía de que cada registro se procesa una única vez, mientras que clientes Kafka pueden crearse con políticas de procesamiento de mensajes at-most-once, at-least-once y exactly-once
· Spark Streaming y Flink
· A nivel de modelo computacional: Spark Streaming usa micro-batches, Flink adopta un modelo de streaming de flujo continuo. Spark usa un window time-based y Flink un Windows record-based
· Flink y Spark sobre plataformas de procesamiento de datos de ámbito general, ambas top-level de Apache.
| Ventajas de Spark | Ventajas de Flink |
| -Velocidad
-Facilidad de uso -Motor unificado y librerías de alto nivel (SQL,…) -APIS en Java, Scala, Python y R -Compartición de datos en memoria -Ofrece un CLI |
-Flink procesa data streams(no en micro-batchs)
-Gestión de memoria mejorado -Velocidad -Puede trabajar con topologías Storm -API más sencilla que la de Spark |

Deja un comentario