¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

41
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 Casado [email protected] #1. Introducción a Apache Flink. Networking

Transcript of ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Page 1: ¿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

Page 2: ¿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

Page 3: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 4: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías 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.

Page 5: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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 -

Page 6: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

3 PROBLEMAS

VOLUMEN

VARIEDAD VELOCIDAD

Page 7: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

3 SOLUCIONES

BATCH PROCESSING

NOSQLSTREAMING PROCESSING

Page 8: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

3 SOLUCIONES

BATCH PROCESSING

NOSQLSTREAMING PROCESSING

Page 9: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

¿CIENCIA O INGENIERÍA?

VOLUMEN

VARIEDAD VELOCIDAD

Page 10: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

¿CIENCIA O INGENIERÍA?

VOLUMEN

VARIEDAD VELOCIDAD

VALOR

Page 11: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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)

Page 12: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 13: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 14: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

HYBRID COMPUTATION MODEL

Combina

VOLUME VELOCITY

Page 15: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 16: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 17: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

FLUJO DE PROCESAMIENTO

RESULTSDATASTORAGE

DATAANALYSIS

DATAACQUISITION

Page 18: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 19: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

HADOOP

Page 20: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

ECOSISTEMA HADOOP

Page 21: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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.

Page 22: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

SPARK VERSUS HADOOP

Page 23: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

ECOSISTEMA SPARK

SparkSQL

SparkStreaming

MLlib(MACHINE LEARNING)

GraphX(GRAPH)

Apache Spark

Page 24: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 25: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

REAL-TIME PROCESSING TECHNOLOGIES

RESULTSDATA

STORAGEDATA

ANALYSISDATA

ACQUISITION

Page 26: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

FLUME

STREAMINGDATA SOURCE SINK

CHANNEL

AGENT

PROCESSING

Page 27: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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.

Page 28: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 29: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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.

Page 30: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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.

Page 31: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 32: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

ARQUITECTURA LAMBDA

Page 33: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

ARQUITECTURA LAMBDA

Page 34: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 35: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 36: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 37: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías 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.

Page 38: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

EJEMPLOS Batch

Streaming

Page 39: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 40: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

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

Page 41: ¿Dónde encaja Apache Flink en el ecosistema actual de tecnologías Big Data?

Meetup Apache Flink Madrid

Introducción a Apache Flink

¡GRACIAS!

ruben_casado

[email protected]