Codemotion 2016 - Big Data para Javeros con Apache Flink

Post on 22-Jan-2017

73 views 0 download

Transcript of Codemotion 2016 - Big Data para Javeros con Apache Flink

Big Data para Javeros con Apache Flink

Luis O. Roldán

@cloudhispano

Yo

• Desarrollando desde 1999

• Con Java desde 2001

• En Altran desde 2007

• Participando en proyectos de I+D desde 2013

• AGILE - BIG DATA - CLOUD - IOT - JAVA - MOBILE -NOSQL - PERFORMANCE - WEB DEV - DEVOPS

18/11/2016 Big Data para Javeros con Apache Flink 3

¿Por qué Flink?

• Java

• Big Data envy

• Cloud ready

• Comunidad

18/11/2016 Big Data para Javeros con Apache Flink 4

Historia de Flink

• 05/2011: Stratosphere 0.1

• 05/2014: Stratosphere 0.5 (Apache Incubator)

• 08/2014: Apache Flink 0.6-incubating

• 01/2015: Apache Flink 0.8-incubating

• 06/2015: Apache Flink 0.9

• 08/2016: Apache Flink 1.1

• 12/10/2016: Apache Flink 1.1.3

18/11/2016 Big Data para Javeros con Apache Flink 5

Intro de flink

• Apache Flink es una plataforma Open Source

• Procesado distribuido de datos tanto en Stream como en Batch.

– Comunicación.

– Tolerancia a fallos.

– Gestión de memoria.

– Optimización del Job.

18/11/2016 Big Data para Javeros con Apache Flink 6

Deploy

• Local

• Cluster

– Standalone

– YARN

• Cloud

– GCE

– EC2

– Amazon Elastic MapReduce (EMR)

18/11/2016 Big Data para Javeros con Apache Flink 7

Core

18/11/2016 Big Data para Javeros con Apache Flink 8

• La capa de Runtime recibe un programa en

forma de gráfico de tareas. Un Job Graph es

un flujo de datos paralelo genérico con tareas

arbitrarias que consumen y producen flujos de

datos.

APIs: Batch y Streaming

Batch

• DataSet Transformations

• File systems:

– Hadoop Distributed File

System (HDFS)

– Amazon S3

– MapR file system

– Alluxio

– ¿MongoDB?

Streaming

• DataStream Windows

• Connectores:– Apache Kafka (sink/source)

– Elasticsearch (sink)

– Elasticsearch 2x (sink)

– Hadoop FileSystem (sink)

– RabbitMQ (sink/source)

– Amazon Kinesis Streams(sink/source)

– Twitter Streaming API (source)

– Apache NiFi (sink/source)

– Apache Cassandra (sink)

– Redis (sink)

18/11/2016 Big Data para Javeros con Apache Flink 9

Librerías

• El stack de Flink ofrece bibliotecas de alto

nivel para diferentes casos de uso:

– Procesamiento de eventos complejos (CEP)

– Aprendizaje automático (FlinkML)

– Análisis gráfico (Gelly)

– Consultas relacionales (Table)

18/11/2016 Big Data para Javeros con Apache Flink 10

Casos de uso: Play

18/11/2016 Big Data para Javeros con Apache Flink 11

Casos de uso: Bond

18/11/2016 Big Data para Javeros con Apache Flink 12

Casos de uso: Bond

18/11/2016 Big Data para Javeros con Apache Flink 13

HeatMap example

18/11/2016 Big Data para Javeros con Apache Flink 14

HeatMap example

18/11/2016 Big Data para Javeros con Apache Flink 15

HeatMap example

18/11/2016 Big Data para Javeros con Apache Flink 16

HeatMap example

18/11/2016 Big Data para Javeros con Apache Flink 17

Contras

• Apoyo de las distribuciones Hadoop

(Cloudera, MapR, etc)

• FlinkML: Faltan algoritmos “potentes”

• Third party packages: Evolucionando…

18/11/2016 Big Data para Javeros con Apache Flink 18

Pros

• Es JAVA!

• Streaming First

• Arquitectura Lambda

18/11/2016 Big Data para Javeros con Apache Flink 19

¿Preguntas?

18/11/2016 Big Data para Javeros con Apache Flink 20

18/11/2016 Big Data para Javeros con Apache Flink 21