¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?
-
Upload
ruben-casado-tejedor -
Category
Software
-
view
1.081 -
download
0
Transcript of ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?
Meetup Apache Flink Madrid
Introducción a Apache Flink
¿Dónde encaja Apache Flink en el ecosistema
de tecnologías Big Data?
Dr. Rubén [email protected]
#1. Introducción a Apache Flink. Networking
Meetup Apache Flink Madrid
Introducción a Apache Flink
¿Dónde encaja Apache Flink en el ecosistema
de tecnologías Big Data?
Dr. Rubén [email protected]
#1. Introducción a Apache Flink. Networking
Meetup Apache Flink Madrid
Introducción a Apache Flink
AGENDA
1. ¿Qué y cómo es Big Data?
2. Batch processing
3. Real-time processing
4. Hybrid computation model
5. Apache Flink en el ecosistema Big Data
Meetup Apache Flink Madrid
Introducción a Apache Flink
¿QUÉ ES BIG DATA?
Grandes cantidades de datos estructurados y desestructurados que no se pueden procesar utilizando tecnologías tradicionales.
Meetup Apache Flink Madrid
Introducción a Apache Flink
¿CÓMO ES BIG DATA?
Big Data are high-volume, high-velocity, and/or high-variety information assets that require new forms of processing to enable enhanced decision
making, insight discovery and process optimization.
- Gartner IT Glossary -
Meetup Apache Flink Madrid
Introducción a Apache Flink
3 PROBLEMAS
VOLUMEN
VARIEDAD VELOCIDAD
Meetup Apache Flink Madrid
Introducción a Apache Flink
3 SOLUCIONES
BATCH PROCESSING
NOSQLSTREAMING PROCESSING
Meetup Apache Flink Madrid
Introducción a Apache Flink
3 SOLUCIONES
BATCH PROCESSING
NOSQLSTREAMING PROCESSING
Meetup Apache Flink Madrid
Introducción a Apache Flink
¿CIENCIA O INGENIERÍA?
VOLUMEN
VARIEDAD VELOCIDAD
Meetup Apache Flink Madrid
Introducción a Apache Flink
¿CIENCIA O INGENIERÍA?
VOLUMEN
VARIEDAD VELOCIDAD
VALOR
Meetup Apache Flink Madrid
Introducción a Apache Flink
¿CIENCIA O INGENIERÍA?
VOLUMEN
VARIEDAD VELOCIDAD
VALORAnálisis de Datos(DATA SCIENCE)
Ingeniería del Software
(DATA ENGINEERING)
Meetup Apache Flink Madrid
Introducción a Apache Flink
VELOCITY
BATCH PROCESSING
Escalable.
Grandes cantidades de información estática.
Distribuido.
Paralelo.
Tolerante a fallos.
Alta latencia.
VOLUME
Meetup Apache Flink Madrid
Introducción a Apache Flink
STREAMING PROCESSING
Baja latencia.
Información generada de continuo (streams).
Distribuido.
Paralelo.
Tolerante a fallos.
VOLUME VELOCITY
Meetup Apache Flink Madrid
Introducción a Apache Flink
HYBRID COMPUTATION MODEL
Combina
VOLUME VELOCITY
Meetup Apache Flink Madrid
Introducción a Apache Flink
PARADIGMAS DE PROCESAMIENTO
Batch processing
Datos estáticos
Escalabilidad
Volumen
Streaming processing
Datos en continuo
Resultados en tiempo real
Velocidad
Hybrid computation
Arquitecturas Lambda & Kappa
Volumen + Velocidad
2006 2010 2014
ORIGEN
2003
1ª GENERACIÓN 2ª GENERACIÓN 3ª GENERACIÓN
Meetup Apache Flink Madrid
Introducción a Apache Flink
BIG DATA: LÍNEA DEL TIEMPO
2005
The Google File System
2004 2006 2010 2014
2003 20152009
2008
2007 2013
2012
2011
BATCH
STREAM
HYBRID
MapReduce: Simplified Data Processingon Large Clusters
Yahoo! comienza a trabajar en Hadoop
Yahoo! crea S4
Facebook crea Hive
LinkedIn presenta Samza
Doug Cutting comienza el desarrollo de Hadoop
Apache Hadoop está en producción
Nathan Marz crea Storm
Yahoo! crea Pig
MillWheel: Fault-Tolerant Stream Processingat Internet Scale
LinkedIn crea Kafka
Cloudera crea Flume
Nathan Marz define la Arquitectura Lambda
Se libera Spark
Arrancan Lambdoop & Summinbgird
Stratosphere evoluciona a Apache Flink
Comienza la batalla SQL-on-Hadoop
Jay Kreps define la Arquitectura Kappa
Cloudera libera Kudu
2016
Google propone Apache Beam
Meetup Apache Flink Madrid
Introducción a Apache Flink
FLUJO DE PROCESAMIENTO
RESULTSDATASTORAGE
DATAANALYSIS
DATAACQUISITION
Meetup Apache Flink Madrid
Introducción a Apache Flink
AGENDA
1. ¿Qué y cómo es Big Data?
2. Batch processing
3. Real-time processing
4. Hybrid computation model
5. Apache Flink en el ecosistema Big Data
Meetup Apache Flink Madrid
Introducción a Apache Flink
HADOOP
Meetup Apache Flink Madrid
Introducción a Apache Flink
ECOSISTEMA HADOOP
Meetup Apache Flink Madrid
Introducción a Apache Flink
SPARK
Sistema de computación distribuida optimizado para data analytics.
No es una versión modificada de Hadoop.
Compatible con HDFS.
Almacenamiento en memoria para ejecuciones rápidas de procesamientos iterativos.
API similar a MapReduce pero extendida.
Accesible desde Scala, Java, Python y R.
Meetup Apache Flink Madrid
Introducción a Apache Flink
SPARK VERSUS HADOOP
Meetup Apache Flink Madrid
Introducción a Apache Flink
ECOSISTEMA SPARK
SparkSQL
SparkStreaming
MLlib(MACHINE LEARNING)
GraphX(GRAPH)
Apache Spark
Meetup Apache Flink Madrid
Introducción a Apache Flink
AGENDA
1. ¿Qué y cómo es Big Data?
2. Batch processing
3. Real-time processing
4. Hybrid computation model
5. Apache Flink en el ecosistema Big Data
Meetup Apache Flink Madrid
Introducción a Apache Flink
REAL-TIME PROCESSING TECHNOLOGIES
RESULTSDATA
STORAGEDATA
ANALYSISDATA
ACQUISITION
Meetup Apache Flink Madrid
Introducción a Apache Flink
FLUME
STREAMINGDATA SOURCE SINK
CHANNEL
AGENT
PROCESSING
Meetup Apache Flink Madrid
Introducción a Apache Flink
KAFKA
Kafka un sistema de colas distribuido, particionado y replicado.
• Modelo Productor/Consumidor.
• Almacena los mensajes en categorías llamadas topics.
• Se ejecuta sobre un clúster.
Meetup Apache Flink Madrid
Introducción a Apache Flink
Hadoop Storm
JobTracker Nimbus
TaskTracker Supervisor
Job Topology
STORM
Sistema de computación en tiempo real distribuido y escalable.
Hace para real-time processing lo que Hadoop hizo para batch processing.
Topology: grafo de procesamiento. Cada nodo contiene la lógica de aplicación.
• Spout: Origen de los streams de datos. Leen de la fuente y emite dato a dato hacía la topología.
• Bolts: Unidad de procesamiento. Leen datos de otros nodos, procesan y pueden producir datos hacia otros nodos.
• Stream: Secuencia infinita de tuplas. Una tupla es un objeto serializado
Meetup Apache Flink Madrid
Introducción a Apache Flink
SAMZA
Motor de procesamientos de data streams en tiempo real.
Desarrollado por LinkedIn. Perfecta conexión con Kafka. Compatible con YARN.
• Stream: Conjunto de mensajes inmutables de una misma categoría.
• Job: Código que transforma un stream en otro stream.
• Partition: Para asegurar escalabilidad, cada stream se parte en partitions de mensajes ordenados.
• Tasks: Por asegurar escalabilidad, un job se divide en tasks.
• Checkpoint: para asegurar recuperación ante fallos.
• State management: Estado de cada task. Persistente y consultable.
Meetup Apache Flink Madrid
Introducción a Apache Flink
SPARK STREAMING
Spark para real-time processing.
Procesamiento de streaming como una serie de micro batch Jobs.
Almacenamiento de los estados en memoria.
API similar a Spark.
Meetup Apache Flink Madrid
Introducción a Apache Flink
AGENDA
1. ¿Qué y cómo es Big Data?
2. Batch processing
3. Real-time processing
4. Hybrid computation model
5. Apache Flink en el ecosistema Big Data
Meetup Apache Flink Madrid
Introducción a Apache Flink
ARQUITECTURA LAMBDA
Meetup Apache Flink Madrid
Introducción a Apache Flink
ARQUITECTURA LAMBDA
Meetup Apache Flink Madrid
Introducción a Apache Flink
SERVING DBSTREAM PROCESSING SYSTEM
DATADATA STORAGE
1 2 3 4 5 .
Job version n
Job version n+1 Outoput table n+1
Outoput table n Query
ARQUITECTURA KAPPA
Meetup Apache Flink Madrid
Introducción a Apache Flink
SERVING DBSTREAM PROCESSING SYSTEM
DATADATA STORAGE
1 2 3 4 5 .
Job version n
Job version n+1 Outoput table n+1
Outoput table n Query
ARQUITECTURA KAPPA
Meetup Apache Flink Madrid
Introducción a Apache Flink
AGENDA
1. ¿Qué y cómo es Big Data?
2. Batch processing
3. Real-time processing
4. Hybrid computation model
5. Apache Flink en el ecosistema Big Data
Meetup Apache Flink Madrid
Introducción a Apache Flink
APACHE FLINK
Stack tecnológico desarrollado inicialmente como proyecto de I+D Stratosphere por grupos de investigación de Berlín. Apache Incubator en Abril 2014 y Apache Top Level en Diciembre 2014.
Motor de procesamiento en memoria:
• Procesamiento de streaming puro. Batch es un tipo concreto de Streaming.
• API similar a Spark.
• Soporte nativo de iteraciones.
• Híbrido mediante Arquitectura Kappa.
• Ecosistema creciendo.
Meetup Apache Flink Madrid
Introducción a Apache Flink
EJEMPLOS Batch
Streaming
Meetup Apache Flink Madrid
Introducción a Apache Flink
Librerías
Ingesta y almacenamiento de
datos
Motores de procesamiento
Gestores de aplicaciones y
recursos
CLASIFICACIÓN
YARN
Meetup Apache Flink Madrid
Introducción a Apache Flink
COMPARACIÓN CON OTRAS TECNOLOGÍAS
API low-level high-level high-level
Data Transfer batch batch pipelined & batch
Memory Management
disk-based JVM-managed Active managed
Iterationsfile system
cachedin-memory
cached streamed
Fault tolerance task level task level job level
Good at massive scale out data explorationheavy backend &
iterative jobs
Libraries many external built-in & externalevolving built-in &
external
Batch processing
Streaming “true” mini batches “true”
API low-level high-level high-level
Fault tolerance tuple-level ACKs RDD-based (lineage)coarse
checkpointing
State not built-in external internal
Exactly once at least once exactly once exactly once
Windowing not built-in restricted flexible
Latency low medium low
Throughput medium high high
Streaming processing