SlideShare una empresa de Scribd logo
Why Apache Flink is better than Spark by Rubén Casado
¿POR QUÉ APACHE FLINK ES
MEJOR QUE SPARK?
Dr Rubén Casado Tejedor
• Formación
– Doctor en Informática (Ingeniería del Software)
– Ingeniero en Informática
– Ingeniero Técnico en Informática de Sistemas
• Experiencia profesional
– Big Data Manager en Accenture Digital
– Director del Master en Arquitectura Big Data en Kschool
– Organizador del Meetup Apache Flink Madrid
– Head of Big Data & Analytics en Treelogic
– Investigador y profesor en la Universidad de Oviedo, Oxford Brookes University (Reino Unido) y
INRIA/LORIA (Francia)
Sobre mi 
█ BIG DATA Y STREAMING PROCESSING
█ CONCEPTOS CLAVE EN FAST DATA
█ DIFERENCIAS ENTRE FLINK Y SPARK
‒ Code demo
█ CONCLUSIONES
█ BIG DATA Y STREAMING PROCESSING
VOLUMEN
Grandes cantidades de datos.
Necesidad de soluciones tecnológica y
económicamente escalables.
VARIEDAD
Información estructurada, semi y
desestructurada. Necesidad de
almacenar y procesar distintos tipos de
información.
VELOCIDAD
Alta frecuencia de generación de
información. Necesidad de producir
resultados en tiempo real.
STREAMING PROCESSING es el
paradigma de procesamiento para
STORM
VELOCIDAD
APACHE FLINK
STREAMING PROCESSING
Analizar según sucede
Plataforma tradicional de BI Plataforma Big Data batch processing
Analytical Database Data as a platform
Data Ingest
Data Collection
Coche
autodirigido
Waze
Why Apache Flink is better than Spark by Rubén Casado
¿QUÉ ES STREAMING PROCESSING?
CLASIFICACIÓN EJEMPLOS LATENCIA TOLERANCIA AL RETRASO
Hard • Marcapasos
• Sistema antibloqueo de frenos
• Microsegundos - milisegundos • Ninguna  fallo total del
sistema, pérdidas de vidas
humanas, etc.
Soft • Sistema de reservas online
• VoIP
• Milisegundos - segundos • Baja  fallo total del
Sistema, sin pérdidas de
vidas humanas.
Near • Sistema de video-conferencia
• Domótica
• Segundos - minutos • Alta  sin riesgo de fallo
del sistema
ARQUITECTURA GENERAL
STREAMING PROCESSING SYSTEM
CAPA DE
ADQUISICIÓN
COLA DE
MENSAJES
CAPA DE
PROCESAMIENTO
ALMACENAMIENTO EN
MEMORIA
CAPA DE ACCESO
ALMACENAMIENTO
LARGA DURACIÓN
ORIGEN
2009
UC Berkeley
empieza a trabajar
en Spark
2010
Yahoo! crea S4
2010
Cloudera crea
Flume
2011
NathanMarzcrea
Storm
2014
Stratosphere
evoluciona a
Apache Flink
2013
Se publica Spark
v0.7 con la
primera version de
Spark Streaming
2013
Linkedin presenta
Samza
2012
LinkedIn desarrolla
Kafka
2015
Ebay libera
Pulsar
2015
DataTorrent libera
como incubator
Apache Apex
2016
Se publica
Apache Storm v1.0
con grandes cambios
2016
Google promueve
Apache Beam
con el apoyo de
DataArtisans y Cloudera
2016
Se publica
Apache Spark 2.0
con notables cambios
█ CONCEPTOS CLAVE EN FAST DATA
SEMÁNTICA DE PROCESAMIENTO
AT-LEAST-ONCE AT-MOST-ONCE EXACTLY-ONCE
Cada mensaje se procesa al menos
una vez. Se asegura que todos los
mensajes recibidos son procesados,
pero podría pasar que algún mensaje
se procesase más de una vez.
Cada mensaje se procesa como
máximo una vez. Se asegura que
ningún mensaje es procesado más de
una vez, pero podría pasar que algún
mensaje no se procesase.
Cada mensaje se procesa exactamente
una vez. Ningún mensaje se queda sin
procesar y ningún mensaje se procesa
más de una vez. La más compleja de
implementar.
NOCIÓN DEL TIEMPO
ProcessingTime
Event Time
Skew
Event Time Processing Time
Una nueva esperanza Episodio IV 1977
El Imperio Contraataca Episodio V 1980
El Retorno del Jedi Episodio VI 1983
La Amenaza Fantasma Episodio I 1999
El ataque de los Clones Episodio II 2002
La venganza de los Sith Episodio III 2005
El despertar de la fuerza Episodio VII 2015
9:008:00 14:0013:0012:0011:0010:002:001:00 7:006:005:004:003:00
NOCIÓN DEL INFINITO
VENTANAS
13:00 14:008:00 9:00 10:00 11:00 12:00
Fijas Deslizantes
1 2 3
54
Sesiones
2
431
Key 2
Key 1
Key 3
Tiempo
Nº elementos
2 3 4
TIPOS DE VENTANAS
Cuando juntamos tiempo y ventanas….
TRIGGER Y WATERMARK
Estrategia early and late firings
█ DIFERENCIAS ENTRE FLINK Y SPARK
‒ Code demo
¿QUÉ SON?
Plataforma de procesamiento distribuido basado
en memoria para data-at-rest y data-in-motion.
• Motor de procesamiento streaming
‒ Batch como caso especial de streaming
• API sencillo para batch y streaming en
múltiples lenguajes
‒ Java, Scala, SQL, Python (WIP), R (WIP)
• Librerías para CEP, ML y Grafos
• Integración con ecosistema Big Data
‒ Hadoop, Kafka, HBase, etc.
• Open Source
‒ Proyecto Apache desde 2014
‒ Evolución del prroyecto I+D europeo Stratosphere
comenzado en 2010
‒ Apoyo de la empresa DataArtisans
Plataforma de procesamiento distribuido basado
en memoria para data-at-rest y data-in-motion.
• Motor de procesamiento batch
‒ Streaming mediante micro-batching
• API sencillo para batch y streaming en
múltiples lenguajes
‒ Java, Scala, SQL, Python, R
• Librerías para ML y Grafos
• Integración con ecosistema Big Data
‒ Hadoop, Kafka, HBase, etc.
• Open Source
‒ Liberado en 2010 y proyecto Apache desde 2013
(incubating) – 2014 (top)
‒ Comenzado en 2009 por UC Berkeley
‒ Apoyo de la empresa Databricks
Apache Flink Apache Spark
¿CÓMO SON?
• Arquitectura maestro-esclavo
‒ Client
‒ JobManager
‒ TaskManager
‒ TaskSlot
• Modelo workflow DAG
‒ Map, Reduce, GroupBy, Join, etc.
• Stateful
‒ Memoria, disco, RockDB
• Shell interactivo de Scala
• Tolerancia a fallos mediante checkpoints
• Optimizador del plan de ejecución
‒ Nativo, diferenciado para batch y streaming
• Control de back pressure
• Arquitectura maestro-esclavo
‒ Driver
‒ Cluster Manager
‒ Worker Node
‒ Task
• Modelo workflow DAG
‒ Map, Reduce, GroupBy, Join, etc.
• Stateful
‒ Memoria, externo (v2.x)
• Shell interactivo de Scala
• Tolerancia a fallos mediante checkpoints
• Optimizador del plan de ejecución
‒ Catalyst (v2.x). Solo para APIs de alto nivel
• Control de back pressure
Apache Flink Apache Spark
PRINCIPALES DIFERENCIAS ENTRE
FLINK Y SPARK STREAMING
EVENT-AT-TIME VS MICRO-BATCHING
Diseño
Al utilizar un motor para batch, Spark tiene que simular el
streaming hacienda “batches pequeños”  micro-
batching.
Esto provoca una latencia ya que es necesario terminar el
micro-batch de elementos antes de empezar a
procesarlo. Tamaño mínimo 0,5 sg.
Flink es un motor streaming nativo por lo que procesa
elemento a elemento evitando esa latencia.
GESTIÓN AVANZADA DEL TIEMPO
Funcionalidad
Flink proporciona API para poder utilizar el event time o el processing time de
forma sencilla. En caso de usar el event time, Flink se encarga
automáticamente de gestionar los eventos desordenados (watermarks).
Spark Streaming solo trabaja con processing time por lo que no puede
gestionar eventos desordenados.
• Planificado event time para Structured Streaming
CODE DEMO (I)
Event time (Flink) vs Processing time (Spark)
Basado en código de la comunidad Apache Flink
https://github.com/dataArtisans/oscon.git
MODELO DE VENTANAS AVANZADO
Funcionalidad
Flink proporciona API para la gestión de los 3 tipos de ventanas
permitiendo definir el tamaño e intervalo por tiempo y nº de
elementos.
Spark NO incluye ventanas por sesión y el tamaño de las NO se
puede definir por nº de elementos.
Flink incluye otros conceptos avanzados para gestión de
ventanas
• Triggers: permite lanzar la ejecución de una ventana sin terminar al cumplirse las
condiciones especificadas.
• Evictors: permite eliminar elementos de la ventana bajo las condiciones
especificadas.
3
4
VERSIONADO DE APLICACIONES
Funcionalidad
Para asegurar la semántica exactly-one, la consistencia de estados,
y la tolerancia a fallos, tanto Flink como Spark utilizan checkpoints
para guardar snapshots de su estado.
Basado en ese mismo mecanismo Flink proporciona un API para
savepoints, permitiendo hacer versionado de aplicaciones.
Una nueva aplicación Flink (v1) puede partir del savepoint de una
versión anterior de la aplicación (v0). Esto se puede usar para A/B
Testing, implementar Arquitecturas Kappa, hacer rollbacks de
versiones, etc.
Los checkpoints de Spark Streaming no proporcionan la misma
funcionalidad.
CODE DEMO (II)
Savepoints (Flink) vs Checkpoints (Spark)
Basado en código de la comunidad Apache Flink
https://github.com/dataArtisans/oscon.git
3
6
ITERACIONES
Rendimiento
Flink tiene un API para soporte nativo de Iteraciones. Importante
para algoritmos iterativos muy habituales en machine learning y
graph processing:
• Iterate: se ejecuta sobre el resultado anterior (o el dataset inicial)
• Delta Iterate: se ejecutan solo sobre la información que ha
cambiado
En Spark las iteraciones se tienen que programar como un bucle
tradicional. Por tanto, en cada iteración se planifican y ejecutan las
operaciones. Además no es posible hacer iteraciones delta.
En Flink solo hay una planificiación y se pueden usar interaciones
delta. El API DeltaIterate de Flink solo es válido para batch
(DataSet).
GESTIÓN DE LA MEMORIA
Rendimiento
Flink tiene desde sus inicios su propio gestor de memoria dentro de la
JVM (estilo C++). La información se se almacena serializada como arrays
de bytes dentro de la JVM. La memoria se reserva/libera y usa usando
una buffer interno.
• Evita lanzar excepciones de OutOfMemory.
• Reduce el Gargabe Collection
• No necesita optimizaciones
• Más robusto y mejor rendimiento
Spark comenzó el proyecto Tungsten en la v1.4 (beta), y primera oficial
en v1.6. Evolución en v2.x
JVM Heap
User
FunctionsFlinkRuntime
THROUGHPUT & LATENCY
Rendimiento
El comportamiento de Flink es lineal, mientras
que el de Spark es a escalones debido a su
diseño de micro-batching.
Flink consigue menor latencia ante el mismo
throughput de Spark Streaming.
Flink consigue una mejor relación
troughput/latency que Spark Streaming
Flink bate a Spark Streaming en el benchmark
de referencia actualmente sobre tecnologías de
streaming processing
https://yahooeng.tumblr.com/post/135321837876/benchmarking-streaming-
computation-engines-at
http://data-artisans.com/extending-the-yahoo-streaming-benchmark/
█ CONCLUSIONES
¿CUÁNDO USAR …?
• Necesidad de latencia baja
• Diseño de una arquitectura pura de streaming
• Necesidad de una lógica de ventanas
complicada
• Montar una arquitectura de datos donde la
parte de streaming es la principal y la batch
secundaria
• Poder beneficiarse en la parte batch de las
iteraciones nativas
• No hay un requisito estricto de baja latencia
• Existe ya una arquitectura de datos con Spark
• Montar una arquitectura de datos donde la
parte batch es la principal y la de streaming
secundaria
• La lógica de negocio se puede implementar
con ventanas por tiempo
• Poder beneficiarse de las librerías de SQL y
ML en la arquitectura
Apache Flink Apache Spark
COMPARACIÓN CON OTRAS TECNOLOGÍAS
Procesamiento Event-at-time Micro-batching Event-at-time Event-at-time
Gestión de estado Sí en 1.x. Externa Si. Memoria.
Si. Memoria y BD
embebida.
Si. BD embebida.
Semántica
at least once
exactly-once con Trident
exactly once exactly once at least once
Ventana deslizante
Sí en 1.x. Por tiempo y nº
eventos
Si. Por tiempo
Si. Por tiempo y nº
eventos.
No
Ventana no-deslizante
Sí en 1.x. Por tiempo y nº
eventos
Si. Por tiempo (micro-
batch)
Si. Por tiempo y nº
eventos.
Si. Por tiempo
Ventana por sesión No No Sí No
Gestión eventos desordenados Sí en 1.x No Sí No
Latencia < segundos segundos < segundos < segundos
Rendimiento Medio-Alto Medio-Alto Alto Alto
Lenguajes
Java, Scala, Ruby,
Python, Javascript, Perl
Scala, Java, Python, R Java, Scala, Python Java, Scala
¡GRACIAS!
Rubén Casado Tejedor
ruben.casado.tejedor@accenture.com
ruben_casado
http://www.meetup.com/es-ES/Meetup-de-Apache-Flink-en-Madrid/

Más contenido relacionado

La actualidad más candente (20)

PDF
apidays Helsinki & North 2023 - What Generative AI Really Means To Cloud Ecos...
apidays
 
PDF
Generative AI: Past, Present, and Future – A Practitioner's Perspective
Huahai Yang
 
PPTX
Reliance jio
Dinker Vaid
 
PDF
Leveraging Generative AI: Opportunities, Risks and Best Practices
Social Samosa
 
PPTX
what is Mixed reality and how it works by holo lens
nareen kumar
 
PDF
Building VR Applications For Google Cardboard
Mark Billinghurst
 
PDF
Netflix: Entering the Video on Demand Industry through Providing Streaming Mo...
guest218374
 
PDF
Artificial Intelligence Opportunities in Retail
Symphony RetailAI
 
PPTX
Google glass.
Tafzeel Mohammad
 
PPTX
DeepFake_Seminar.pptx
sandeshsb
 
PDF
Extended Reality (XR): The End of Distance @ SXSW
Rori DuBoff
 
PDF
Artificial Intelligence (AI) in media applications and services
Förderverein Technische Fakultät
 
DOCX
Google glass abstract
teza123
 
PPTX
Integrating AI - Business Applications
Hal Kalechofsky
 
PDF
The Metaverse in Fashion
Jim Downing
 
PDF
Graphic Design Essentials by Rahul KULKARNI.
Rahul KULKARNI
 
PDF
Developing VR Experiences with Unity
Mark Billinghurst
 
PPTX
Virtual Reality
mubeen arshad
 
PDF
Comp4010 Lecture9 VR Input and Systems
Mark Billinghurst
 
PDF
Gary vee content model
RogerCruz45
 
apidays Helsinki & North 2023 - What Generative AI Really Means To Cloud Ecos...
apidays
 
Generative AI: Past, Present, and Future – A Practitioner's Perspective
Huahai Yang
 
Reliance jio
Dinker Vaid
 
Leveraging Generative AI: Opportunities, Risks and Best Practices
Social Samosa
 
what is Mixed reality and how it works by holo lens
nareen kumar
 
Building VR Applications For Google Cardboard
Mark Billinghurst
 
Netflix: Entering the Video on Demand Industry through Providing Streaming Mo...
guest218374
 
Artificial Intelligence Opportunities in Retail
Symphony RetailAI
 
Google glass.
Tafzeel Mohammad
 
DeepFake_Seminar.pptx
sandeshsb
 
Extended Reality (XR): The End of Distance @ SXSW
Rori DuBoff
 
Artificial Intelligence (AI) in media applications and services
Förderverein Technische Fakultät
 
Google glass abstract
teza123
 
Integrating AI - Business Applications
Hal Kalechofsky
 
The Metaverse in Fashion
Jim Downing
 
Graphic Design Essentials by Rahul KULKARNI.
Rahul KULKARNI
 
Developing VR Experiences with Unity
Mark Billinghurst
 
Virtual Reality
mubeen arshad
 
Comp4010 Lecture9 VR Input and Systems
Mark Billinghurst
 
Gary vee content model
RogerCruz45
 

Destacado (20)

PDF
Advanced data science algorithms applied to scalable stream processing by Dav...
Big Data Spain
 
PDF
Big Migrations: Moving elephant herds by Carlos Izquierdo
Big Data Spain
 
PDF
Converging Big Data and Application Infrastructure by Steven Poutsy
Big Data Spain
 
PDF
Are we reaching a Data Science Singularity? How Cognitive Computing is emergi...
Big Data Spain
 
PDF
Finding the needle in the haystack: how Nestle is leveraging big data to defe...
Big Data Spain
 
PPTX
Flink vs. Spark
Slim Baltagi
 
PDF
Big data in 140 characters by Joe Rice
Big Data Spain
 
PDF
Migration and Coexistence between Relational and NoSQL Databases by Manuel H...
Big Data Spain
 
PDF
From data to AI with the Machine Learning Canvas by Louis Dorard Slides
Big Data Spain
 
PDF
Assessing spatial accessibility to primary health care services in the Metrop...
Big Data Spain
 
PDF
Case of success: Visualization as an example for exercising democratic transp...
Big Data Spain
 
PDF
Stream Processing use cases and applications with Apache Apex by Thomas Weise
Big Data Spain
 
PDF
Enabling the Bank of the Future by Ignacio Bernal
Big Data Spain
 
PDF
VP of WW Partners by Alan Chhabra
Big Data Spain
 
PDF
From data to numbers to knowledge: semantic embeddings By Alvaro Barbero
Big Data Spain
 
PDF
The Rise of Engineering-Driven Analytics by Loren Shure
Big Data Spain
 
PPTX
Why apache Flink is the 4G of Big Data Analytics Frameworks
Slim Baltagi
 
PDF
Apache ® Spark™ MLlib 2.x: How to Productionize your Machine Learning Models
Anyscale
 
PDF
Apache Flink vs Apache Spark - Reproducible experiments on cloud.
Shelan Perera
 
PDF
Introduction to Apache Apex by Thomas Weise
Big Data Spain
 
Advanced data science algorithms applied to scalable stream processing by Dav...
Big Data Spain
 
Big Migrations: Moving elephant herds by Carlos Izquierdo
Big Data Spain
 
Converging Big Data and Application Infrastructure by Steven Poutsy
Big Data Spain
 
Are we reaching a Data Science Singularity? How Cognitive Computing is emergi...
Big Data Spain
 
Finding the needle in the haystack: how Nestle is leveraging big data to defe...
Big Data Spain
 
Flink vs. Spark
Slim Baltagi
 
Big data in 140 characters by Joe Rice
Big Data Spain
 
Migration and Coexistence between Relational and NoSQL Databases by Manuel H...
Big Data Spain
 
From data to AI with the Machine Learning Canvas by Louis Dorard Slides
Big Data Spain
 
Assessing spatial accessibility to primary health care services in the Metrop...
Big Data Spain
 
Case of success: Visualization as an example for exercising democratic transp...
Big Data Spain
 
Stream Processing use cases and applications with Apache Apex by Thomas Weise
Big Data Spain
 
Enabling the Bank of the Future by Ignacio Bernal
Big Data Spain
 
VP of WW Partners by Alan Chhabra
Big Data Spain
 
From data to numbers to knowledge: semantic embeddings By Alvaro Barbero
Big Data Spain
 
The Rise of Engineering-Driven Analytics by Loren Shure
Big Data Spain
 
Why apache Flink is the 4G of Big Data Analytics Frameworks
Slim Baltagi
 
Apache ® Spark™ MLlib 2.x: How to Productionize your Machine Learning Models
Anyscale
 
Apache Flink vs Apache Spark - Reproducible experiments on cloud.
Shelan Perera
 
Introduction to Apache Apex by Thomas Weise
Big Data Spain
 
Publicidad

Similar a Why Apache Flink is better than Spark by Rubén Casado (20)

PDF
Analitica y toma de decisiones en tiempo real sobre plataformas big data
José Carlos García Serrano
 
PDF
¿Por que cambiar de Apache Hadoop a Apache Spark?
Socialmetrix
 
PDF
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Francisco Javier Toscano Lopez
 
PDF
Escalabilidad y alto rendimiento con Symfony2
Ricard Clau
 
PDF
Rendimiento extremo en php
Francisco Javier Vazquez Umbria
 
PPTX
herramientas tecnológicas
Gerardo Linares
 
PDF
Gestión Remota de Equipos con Python
Juan Manuel Rodriguez Burgos
 
PDF
Docker: la revolución en virtualización
Marcelo Ochoa
 
PDF
Tuning Lamp
Ian Monge Pérez
 
PPTX
Scala@real life
David Vallejo Navarro
 
PPTX
Scala @ Real life
Javier Santos Paniego
 
PPTX
Estudio sobre Spark, Storm, Kafka y Hive
Wellness Telecom
 
PDF
Big data para desarrolladores utilizando hadoop y openstack
Guillermo Alvarado Mejía
 
PDF
Big Data para desarrolladores utilizando Hadoop y OpenStack
Software Guru
 
PDF
Introduccion a Apache Spark
Gustavo Arjones
 
PDF
Spark meetup barcelona
Jorge Lopez-Malla
 
PDF
De Mensajería hacia Logs con Apache Kafka
Jorge Esteban Quilcate Otoya
 
PDF
Spark web meetup
Jorge Lopez-Malla
 
PDF
Meetup: Cómo monitorizar y optimizar procesos de Spark usando la Spark Web - ...
Stratio
 
DOCX
SMBD 2011
Jillian Motoharu
 
Analitica y toma de decisiones en tiempo real sobre plataformas big data
José Carlos García Serrano
 
¿Por que cambiar de Apache Hadoop a Apache Spark?
Socialmetrix
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Francisco Javier Toscano Lopez
 
Escalabilidad y alto rendimiento con Symfony2
Ricard Clau
 
Rendimiento extremo en php
Francisco Javier Vazquez Umbria
 
herramientas tecnológicas
Gerardo Linares
 
Gestión Remota de Equipos con Python
Juan Manuel Rodriguez Burgos
 
Docker: la revolución en virtualización
Marcelo Ochoa
 
Tuning Lamp
Ian Monge Pérez
 
Scala@real life
David Vallejo Navarro
 
Scala @ Real life
Javier Santos Paniego
 
Estudio sobre Spark, Storm, Kafka y Hive
Wellness Telecom
 
Big data para desarrolladores utilizando hadoop y openstack
Guillermo Alvarado Mejía
 
Big Data para desarrolladores utilizando Hadoop y OpenStack
Software Guru
 
Introduccion a Apache Spark
Gustavo Arjones
 
Spark meetup barcelona
Jorge Lopez-Malla
 
De Mensajería hacia Logs con Apache Kafka
Jorge Esteban Quilcate Otoya
 
Spark web meetup
Jorge Lopez-Malla
 
Meetup: Cómo monitorizar y optimizar procesos de Spark usando la Spark Web - ...
Stratio
 
SMBD 2011
Jillian Motoharu
 
Publicidad

Más de Big Data Spain (20)

PDF
Big Data, Big Quality? by Irene Gonzálvez at Big Data Spain 2017
Big Data Spain
 
PDF
Scaling a backend for a big data and blockchain environment by Rafael Ríos at...
Big Data Spain
 
PDF
AI: The next frontier by Amparo Alonso at Big Data Spain 2017
Big Data Spain
 
PDF
Disaster Recovery for Big Data by Carlos Izquierdo at Big Data Spain 2017
Big Data Spain
 
PDF
Presentation: Boost Hadoop and Spark with in-memory technologies by Akmal Cha...
Big Data Spain
 
PDF
Data science for lazy people, Automated Machine Learning by Diego Hueltes at ...
Big Data Spain
 
PDF
Training Deep Learning Models on Multiple GPUs in the Cloud by Enrique Otero ...
Big Data Spain
 
PDF
Unbalanced data: Same algorithms different techniques by Eric Martín at Big D...
Big Data Spain
 
PDF
State of the art time-series analysis with deep learning by Javier Ordóñez at...
Big Data Spain
 
PDF
Trading at market speed with the latest Kafka features by Iñigo González at B...
Big Data Spain
 
PDF
Unified Stream Processing at Scale with Apache Samza by Jake Maes at Big Data...
Big Data Spain
 
PDF
The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a...
Big Data Spain
 
PDF
Artificial Intelligence and Data-centric businesses by Óscar Méndez at Big Da...
Big Data Spain
 
PDF
Why big data didn’t end causal inference by Totte Harinen at Big Data Spain 2017
Big Data Spain
 
PDF
Meme Index. Analyzing fads and sensations on the Internet by Miguel Romero at...
Big Data Spain
 
PDF
Vehicle Big Data that Drives Smart City Advancement by Mike Branch at Big Dat...
Big Data Spain
 
PDF
End of the Myth: Ultra-Scalable Transactional Management by Ricardo Jiménez-P...
Big Data Spain
 
PDF
Attacking Machine Learning used in AntiVirus with Reinforcement by Rubén Mart...
Big Data Spain
 
PDF
More people, less banking: Blockchain by Salvador Casquero at Big Data Spain ...
Big Data Spain
 
PDF
Make the elephant fly, once again by Sourygna Luangsay at Big Data Spain 2017
Big Data Spain
 
Big Data, Big Quality? by Irene Gonzálvez at Big Data Spain 2017
Big Data Spain
 
Scaling a backend for a big data and blockchain environment by Rafael Ríos at...
Big Data Spain
 
AI: The next frontier by Amparo Alonso at Big Data Spain 2017
Big Data Spain
 
Disaster Recovery for Big Data by Carlos Izquierdo at Big Data Spain 2017
Big Data Spain
 
Presentation: Boost Hadoop and Spark with in-memory technologies by Akmal Cha...
Big Data Spain
 
Data science for lazy people, Automated Machine Learning by Diego Hueltes at ...
Big Data Spain
 
Training Deep Learning Models on Multiple GPUs in the Cloud by Enrique Otero ...
Big Data Spain
 
Unbalanced data: Same algorithms different techniques by Eric Martín at Big D...
Big Data Spain
 
State of the art time-series analysis with deep learning by Javier Ordóñez at...
Big Data Spain
 
Trading at market speed with the latest Kafka features by Iñigo González at B...
Big Data Spain
 
Unified Stream Processing at Scale with Apache Samza by Jake Maes at Big Data...
Big Data Spain
 
The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a...
Big Data Spain
 
Artificial Intelligence and Data-centric businesses by Óscar Méndez at Big Da...
Big Data Spain
 
Why big data didn’t end causal inference by Totte Harinen at Big Data Spain 2017
Big Data Spain
 
Meme Index. Analyzing fads and sensations on the Internet by Miguel Romero at...
Big Data Spain
 
Vehicle Big Data that Drives Smart City Advancement by Mike Branch at Big Dat...
Big Data Spain
 
End of the Myth: Ultra-Scalable Transactional Management by Ricardo Jiménez-P...
Big Data Spain
 
Attacking Machine Learning used in AntiVirus with Reinforcement by Rubén Mart...
Big Data Spain
 
More people, less banking: Blockchain by Salvador Casquero at Big Data Spain ...
Big Data Spain
 
Make the elephant fly, once again by Sourygna Luangsay at Big Data Spain 2017
Big Data Spain
 

Último (15)

PDF
Distribución de frecuencias y Diagrama de Pareto en Excel - Trabajo Colaborat...
mapaulahiguita
 
PDF
Exposición Rayleigh, teoría de la comunicación, etsii tugr
DanielPereiraRiquelm
 
DOCX
Distribucion de frecuencias Michelle Solarte 11-5 2025
MissPotato2
 
PPTX
Presentación_Estación_Total_Temas_Definidos.pptx fin.pptx
ximenamondrianbecerr
 
PDF
albañileriaalbañileriaalbañileriaalbañileriaalbañileria
danteisrael987654321
 
PPTX
Poblacion_y_Muestra para trabajos de investigación pptx
yaneligomezcaceres
 
PPTX
Presentación de servicios XMS (2025) - Partner Microsoft
INBOUND PLUS SpA
 
PPTX
presentación a introducción de mantenimiento.pptx
ubaldoGonzalez16
 
PPTX
UiPath and Dream to Succeed Kick Off 2025 AI Agentic Automation RPA Program 2025
DianaGray10
 
PPTX
HARDWARE ponderaciones y placas madre.pptx
jjcondori21
 
PPT
(cloud computing) se refiere al acceso a recursos informáticos a través de in...
75485218
 
PPTX
ESPECIALIDAD DE REDES SOCIALES guías mayores.pptx
DianaLauraMadridEsco1
 
PDF
Curso.Formacion.dron.A1.A3.Completo.v1.pdf
jimenoasenjo1
 
PPTX
MAQUINA DE TURING Y VARIANTES DEL LA MAQUINA DE TURING.pptx
GabyBraga4
 
PPTX
Revolucionando-los-Informes-Tecnicos-con-IA.pptx
DanielChura9
 
Distribución de frecuencias y Diagrama de Pareto en Excel - Trabajo Colaborat...
mapaulahiguita
 
Exposición Rayleigh, teoría de la comunicación, etsii tugr
DanielPereiraRiquelm
 
Distribucion de frecuencias Michelle Solarte 11-5 2025
MissPotato2
 
Presentación_Estación_Total_Temas_Definidos.pptx fin.pptx
ximenamondrianbecerr
 
albañileriaalbañileriaalbañileriaalbañileriaalbañileria
danteisrael987654321
 
Poblacion_y_Muestra para trabajos de investigación pptx
yaneligomezcaceres
 
Presentación de servicios XMS (2025) - Partner Microsoft
INBOUND PLUS SpA
 
presentación a introducción de mantenimiento.pptx
ubaldoGonzalez16
 
UiPath and Dream to Succeed Kick Off 2025 AI Agentic Automation RPA Program 2025
DianaGray10
 
HARDWARE ponderaciones y placas madre.pptx
jjcondori21
 
(cloud computing) se refiere al acceso a recursos informáticos a través de in...
75485218
 
ESPECIALIDAD DE REDES SOCIALES guías mayores.pptx
DianaLauraMadridEsco1
 
Curso.Formacion.dron.A1.A3.Completo.v1.pdf
jimenoasenjo1
 
MAQUINA DE TURING Y VARIANTES DEL LA MAQUINA DE TURING.pptx
GabyBraga4
 
Revolucionando-los-Informes-Tecnicos-con-IA.pptx
DanielChura9
 

Why Apache Flink is better than Spark by Rubén Casado

  • 2. ¿POR QUÉ APACHE FLINK ES MEJOR QUE SPARK? Dr Rubén Casado Tejedor
  • 3. • Formación – Doctor en Informática (Ingeniería del Software) – Ingeniero en Informática – Ingeniero Técnico en Informática de Sistemas • Experiencia profesional – Big Data Manager en Accenture Digital – Director del Master en Arquitectura Big Data en Kschool – Organizador del Meetup Apache Flink Madrid – Head of Big Data & Analytics en Treelogic – Investigador y profesor en la Universidad de Oviedo, Oxford Brookes University (Reino Unido) y INRIA/LORIA (Francia) Sobre mi 
  • 4. █ BIG DATA Y STREAMING PROCESSING █ CONCEPTOS CLAVE EN FAST DATA █ DIFERENCIAS ENTRE FLINK Y SPARK ‒ Code demo █ CONCLUSIONES
  • 5. █ BIG DATA Y STREAMING PROCESSING
  • 6. VOLUMEN Grandes cantidades de datos. Necesidad de soluciones tecnológica y económicamente escalables. VARIEDAD Información estructurada, semi y desestructurada. Necesidad de almacenar y procesar distintos tipos de información. VELOCIDAD Alta frecuencia de generación de información. Necesidad de producir resultados en tiempo real.
  • 7. STREAMING PROCESSING es el paradigma de procesamiento para STORM VELOCIDAD APACHE FLINK
  • 9. Plataforma tradicional de BI Plataforma Big Data batch processing Analytical Database Data as a platform Data Ingest Data Collection
  • 11. Waze
  • 13. ¿QUÉ ES STREAMING PROCESSING? CLASIFICACIÓN EJEMPLOS LATENCIA TOLERANCIA AL RETRASO Hard • Marcapasos • Sistema antibloqueo de frenos • Microsegundos - milisegundos • Ninguna  fallo total del sistema, pérdidas de vidas humanas, etc. Soft • Sistema de reservas online • VoIP • Milisegundos - segundos • Baja  fallo total del Sistema, sin pérdidas de vidas humanas. Near • Sistema de video-conferencia • Domótica • Segundos - minutos • Alta  sin riesgo de fallo del sistema
  • 14. ARQUITECTURA GENERAL STREAMING PROCESSING SYSTEM CAPA DE ADQUISICIÓN COLA DE MENSAJES CAPA DE PROCESAMIENTO ALMACENAMIENTO EN MEMORIA CAPA DE ACCESO ALMACENAMIENTO LARGA DURACIÓN ORIGEN
  • 15. 2009 UC Berkeley empieza a trabajar en Spark 2010 Yahoo! crea S4 2010 Cloudera crea Flume 2011 NathanMarzcrea Storm 2014 Stratosphere evoluciona a Apache Flink 2013 Se publica Spark v0.7 con la primera version de Spark Streaming 2013 Linkedin presenta Samza 2012 LinkedIn desarrolla Kafka 2015 Ebay libera Pulsar 2015 DataTorrent libera como incubator Apache Apex 2016 Se publica Apache Storm v1.0 con grandes cambios 2016 Google promueve Apache Beam con el apoyo de DataArtisans y Cloudera 2016 Se publica Apache Spark 2.0 con notables cambios
  • 16. █ CONCEPTOS CLAVE EN FAST DATA
  • 17. SEMÁNTICA DE PROCESAMIENTO AT-LEAST-ONCE AT-MOST-ONCE EXACTLY-ONCE Cada mensaje se procesa al menos una vez. Se asegura que todos los mensajes recibidos son procesados, pero podría pasar que algún mensaje se procesase más de una vez. Cada mensaje se procesa como máximo una vez. Se asegura que ningún mensaje es procesado más de una vez, pero podría pasar que algún mensaje no se procesase. Cada mensaje se procesa exactamente una vez. Ningún mensaje se queda sin procesar y ningún mensaje se procesa más de una vez. La más compleja de implementar.
  • 19. Event Time Processing Time Una nueva esperanza Episodio IV 1977 El Imperio Contraataca Episodio V 1980 El Retorno del Jedi Episodio VI 1983 La Amenaza Fantasma Episodio I 1999 El ataque de los Clones Episodio II 2002 La venganza de los Sith Episodio III 2005 El despertar de la fuerza Episodio VII 2015
  • 21. VENTANAS 13:00 14:008:00 9:00 10:00 11:00 12:00
  • 22. Fijas Deslizantes 1 2 3 54 Sesiones 2 431 Key 2 Key 1 Key 3 Tiempo Nº elementos 2 3 4 TIPOS DE VENTANAS
  • 23. Cuando juntamos tiempo y ventanas….
  • 25. Estrategia early and late firings
  • 26. █ DIFERENCIAS ENTRE FLINK Y SPARK ‒ Code demo
  • 27. ¿QUÉ SON? Plataforma de procesamiento distribuido basado en memoria para data-at-rest y data-in-motion. • Motor de procesamiento streaming ‒ Batch como caso especial de streaming • API sencillo para batch y streaming en múltiples lenguajes ‒ Java, Scala, SQL, Python (WIP), R (WIP) • Librerías para CEP, ML y Grafos • Integración con ecosistema Big Data ‒ Hadoop, Kafka, HBase, etc. • Open Source ‒ Proyecto Apache desde 2014 ‒ Evolución del prroyecto I+D europeo Stratosphere comenzado en 2010 ‒ Apoyo de la empresa DataArtisans Plataforma de procesamiento distribuido basado en memoria para data-at-rest y data-in-motion. • Motor de procesamiento batch ‒ Streaming mediante micro-batching • API sencillo para batch y streaming en múltiples lenguajes ‒ Java, Scala, SQL, Python, R • Librerías para ML y Grafos • Integración con ecosistema Big Data ‒ Hadoop, Kafka, HBase, etc. • Open Source ‒ Liberado en 2010 y proyecto Apache desde 2013 (incubating) – 2014 (top) ‒ Comenzado en 2009 por UC Berkeley ‒ Apoyo de la empresa Databricks Apache Flink Apache Spark
  • 28. ¿CÓMO SON? • Arquitectura maestro-esclavo ‒ Client ‒ JobManager ‒ TaskManager ‒ TaskSlot • Modelo workflow DAG ‒ Map, Reduce, GroupBy, Join, etc. • Stateful ‒ Memoria, disco, RockDB • Shell interactivo de Scala • Tolerancia a fallos mediante checkpoints • Optimizador del plan de ejecución ‒ Nativo, diferenciado para batch y streaming • Control de back pressure • Arquitectura maestro-esclavo ‒ Driver ‒ Cluster Manager ‒ Worker Node ‒ Task • Modelo workflow DAG ‒ Map, Reduce, GroupBy, Join, etc. • Stateful ‒ Memoria, externo (v2.x) • Shell interactivo de Scala • Tolerancia a fallos mediante checkpoints • Optimizador del plan de ejecución ‒ Catalyst (v2.x). Solo para APIs de alto nivel • Control de back pressure Apache Flink Apache Spark
  • 30. EVENT-AT-TIME VS MICRO-BATCHING Diseño Al utilizar un motor para batch, Spark tiene que simular el streaming hacienda “batches pequeños”  micro- batching. Esto provoca una latencia ya que es necesario terminar el micro-batch de elementos antes de empezar a procesarlo. Tamaño mínimo 0,5 sg. Flink es un motor streaming nativo por lo que procesa elemento a elemento evitando esa latencia.
  • 31. GESTIÓN AVANZADA DEL TIEMPO Funcionalidad Flink proporciona API para poder utilizar el event time o el processing time de forma sencilla. En caso de usar el event time, Flink se encarga automáticamente de gestionar los eventos desordenados (watermarks). Spark Streaming solo trabaja con processing time por lo que no puede gestionar eventos desordenados. • Planificado event time para Structured Streaming
  • 32. CODE DEMO (I) Event time (Flink) vs Processing time (Spark) Basado en código de la comunidad Apache Flink https://github.com/dataArtisans/oscon.git
  • 33. MODELO DE VENTANAS AVANZADO Funcionalidad Flink proporciona API para la gestión de los 3 tipos de ventanas permitiendo definir el tamaño e intervalo por tiempo y nº de elementos. Spark NO incluye ventanas por sesión y el tamaño de las NO se puede definir por nº de elementos. Flink incluye otros conceptos avanzados para gestión de ventanas • Triggers: permite lanzar la ejecución de una ventana sin terminar al cumplirse las condiciones especificadas. • Evictors: permite eliminar elementos de la ventana bajo las condiciones especificadas.
  • 34. 3 4 VERSIONADO DE APLICACIONES Funcionalidad Para asegurar la semántica exactly-one, la consistencia de estados, y la tolerancia a fallos, tanto Flink como Spark utilizan checkpoints para guardar snapshots de su estado. Basado en ese mismo mecanismo Flink proporciona un API para savepoints, permitiendo hacer versionado de aplicaciones. Una nueva aplicación Flink (v1) puede partir del savepoint de una versión anterior de la aplicación (v0). Esto se puede usar para A/B Testing, implementar Arquitecturas Kappa, hacer rollbacks de versiones, etc. Los checkpoints de Spark Streaming no proporcionan la misma funcionalidad.
  • 35. CODE DEMO (II) Savepoints (Flink) vs Checkpoints (Spark) Basado en código de la comunidad Apache Flink https://github.com/dataArtisans/oscon.git
  • 36. 3 6 ITERACIONES Rendimiento Flink tiene un API para soporte nativo de Iteraciones. Importante para algoritmos iterativos muy habituales en machine learning y graph processing: • Iterate: se ejecuta sobre el resultado anterior (o el dataset inicial) • Delta Iterate: se ejecutan solo sobre la información que ha cambiado En Spark las iteraciones se tienen que programar como un bucle tradicional. Por tanto, en cada iteración se planifican y ejecutan las operaciones. Además no es posible hacer iteraciones delta. En Flink solo hay una planificiación y se pueden usar interaciones delta. El API DeltaIterate de Flink solo es válido para batch (DataSet).
  • 37. GESTIÓN DE LA MEMORIA Rendimiento Flink tiene desde sus inicios su propio gestor de memoria dentro de la JVM (estilo C++). La información se se almacena serializada como arrays de bytes dentro de la JVM. La memoria se reserva/libera y usa usando una buffer interno. • Evita lanzar excepciones de OutOfMemory. • Reduce el Gargabe Collection • No necesita optimizaciones • Más robusto y mejor rendimiento Spark comenzó el proyecto Tungsten en la v1.4 (beta), y primera oficial en v1.6. Evolución en v2.x JVM Heap User FunctionsFlinkRuntime
  • 38. THROUGHPUT & LATENCY Rendimiento El comportamiento de Flink es lineal, mientras que el de Spark es a escalones debido a su diseño de micro-batching. Flink consigue menor latencia ante el mismo throughput de Spark Streaming. Flink consigue una mejor relación troughput/latency que Spark Streaming Flink bate a Spark Streaming en el benchmark de referencia actualmente sobre tecnologías de streaming processing https://yahooeng.tumblr.com/post/135321837876/benchmarking-streaming- computation-engines-at http://data-artisans.com/extending-the-yahoo-streaming-benchmark/
  • 40. ¿CUÁNDO USAR …? • Necesidad de latencia baja • Diseño de una arquitectura pura de streaming • Necesidad de una lógica de ventanas complicada • Montar una arquitectura de datos donde la parte de streaming es la principal y la batch secundaria • Poder beneficiarse en la parte batch de las iteraciones nativas • No hay un requisito estricto de baja latencia • Existe ya una arquitectura de datos con Spark • Montar una arquitectura de datos donde la parte batch es la principal y la de streaming secundaria • La lógica de negocio se puede implementar con ventanas por tiempo • Poder beneficiarse de las librerías de SQL y ML en la arquitectura Apache Flink Apache Spark
  • 41. COMPARACIÓN CON OTRAS TECNOLOGÍAS Procesamiento Event-at-time Micro-batching Event-at-time Event-at-time Gestión de estado Sí en 1.x. Externa Si. Memoria. Si. Memoria y BD embebida. Si. BD embebida. Semántica at least once exactly-once con Trident exactly once exactly once at least once Ventana deslizante Sí en 1.x. Por tiempo y nº eventos Si. Por tiempo Si. Por tiempo y nº eventos. No Ventana no-deslizante Sí en 1.x. Por tiempo y nº eventos Si. Por tiempo (micro- batch) Si. Por tiempo y nº eventos. Si. Por tiempo Ventana por sesión No No Sí No Gestión eventos desordenados Sí en 1.x No Sí No Latencia < segundos segundos < segundos < segundos Rendimiento Medio-Alto Medio-Alto Alto Alto Lenguajes Java, Scala, Ruby, Python, Javascript, Perl Scala, Java, Python, R Java, Scala, Python Java, Scala