La sociedad hoy plantea crecientes demandas de soluciones informáticas, cuando estas soluciones requieren el procesamiento de grandes volúmenes de datos, las herramientas tradicionales de procesamiento muestran limitaciones e inconvenientes derivados de la cantidad de datos a procesar o del tiempo necesario para realizarlo. Surge así, la necesidad de herramientas específicas, llamadas herramientas de Big Data. Dentro de estas existe un grupo concreto para el procesamiento de flujos de datos (stream processing), entendiendo por flujo de datos la recepción y procesamiento continuo de datos ilimitados desde diferentes fuentes. Debido a su naturaleza sin límite, estos flujos no pueden descargarse de manera completa, y deben ser procesados en línea cuando se reciben. Dos de las principales herramientas para el procesamiento de streaming son Apache Spark y Apache Flink.
El objetivo del presente trabajo es realizar una comparación entre Apache Spark y Apache Flink en el procesamiento de streaming. Para realizar la comparación entre estas herramientas se utilizará el lenguaje de desarrollo Python, ya que el mismo soporta el trabajo tanto en Spark como en Flink, y a su vez es uno de los lenguajes de programación más utilizados en la actualidad.
La comparación entre los frameworks requiere el desarrollo de dos aplicaciones para el tratamiento del flujo de datos, ambas resolviendo el mismo problema. Una aplicación realizará el procesamiento de streaming en Apache Spark, mientras que la otra realizará la misma tarea en Apache Flink.