Apache Flink
Vue d’ensemble du framework
Paris Spark Meetup
07/12/2015
Bilal BALTAGI
@Bilal_baltagi
Plan
● Introduction à Apache Flink
● L'écosystème Apache Flink
● Que fournit Apache Flink
○ Batch
○ Streaming
○ FlinkML et...
Introduction à Apache Flink
● Open-source Big Data Analytics Framework
● Conçu dès le départ pour :
○ In-memory process
○ ...
Introduction à Apache Flink
● Origine :
○ Stratosphere : Projet universitaire
○ Né à Berlin en 2008
● Quelques dates :
○ A...
Écosystème classique d’un Big data analytics framework
5
6
Que fournis Apache Flink
● Moteur d'exécution : Distribué et évolutif
● Plusieurs API :
○ DataSet - Batch (Java, Scala et ...
Que fournis Apache Flink
● Domain-specific library (DSL) :
○ FlinkML : Machine Learning
○ Gelly : Traitement des graphes
8
Actuellement le seul framework Open-
source hybride :
Batch and True Real Time
9
Apache Flink : Traitement Batch
● Cost-based optimisation du plan d'exécution
○ En fonction du contexte (Single machine,
c...
Apache Flink : Traitement Batch - plan d’execution
11
Apache Flink : Traitement Batch - plan d’execution
12
Apache Flink : Traitement Batch
● Flink gère sa propre mémoire :
○ Pas de Out-of-memory
○ Réduction du Garbage collector
○...
Apache Flink : Traitement Batch
case class Word (word: String, frequency: Int)
val lines: DataSet[String] = env.fromElemen...
Apache Flink : Traitement Batch - comparaison
TeraSort de 3,2To - 80Go/node
Source : http://goo.gl/IqR97G 15
Apache Flink : Traitement Batch - comparaison
HashJoin - 10 Noeud - 256Mo + 240Go
Source : http://goo.gl/IqR97G 16
4X Plus rapide que Spark
17
Apache Flink : Traitement temps réel
● N’est plus en bêta depuis le 23/11/2015
● Low-latency : temps réel
● High throughpu...
Apache Flink : Traitement temps réel
● Traitement native des itérations
● API riche :
○ Connecteurs (Flume, kafka, Twitter...
Apache Flink : Traitement temps réel
● Quelques cas ou le “vrai temps réel” est critique :
○ Détection des fraudes et anom...
Apache Flink : Traitement temps réel
Storm Vs. Flink
Source : http://goo.gl/1Tgbn3 21
260X Plus de données que Storm
22
Apache Flink : Traitement temps réel
● Exemple de traitement d’un flux continu avec Apache Flink : http://flink.
apache.or...
Apache Flink : Traitement temps réel
Rolling sum : Retourne en continue la somme du nombre de
véhicules passés 24
Apache Flink : Traitement temps réel
Tumbling windows: Retourne toutes les 60 secondes le
nombre de véhicules qui viennent...
Apache Flink : Traitement temps réel
Windows sliding : Retourne toutes les 30 secondes le nombre
de véhicules qui sont pas...
Apache Flink : Traitement temps réel
case class Word (word: String, frequency: Int)
val lines: DataStream[String] = env.fr...
Apache Flink : FlinkML
● FlinkML : Machine learning
● Inspiré de
○ Sikit-learn : Spécification propre des
pipelines ML
○ S...
Apache Flink : Gelly
● Gelly : Traitement des graphes
29
Apache Flink : FlinkML et Gelly
● Points forts :
○ In-memory data streaming
○ Code identique entre machine locale (extrait...
Apache Flink : FlinkML et Gelly
● Algorithmes avec itérations :
○ K-means
○ PageRank
31
Apache Flink : Overview
Real-time Stream
Cyclic Batch
Machine Learning
Graph
32
Apache Flink : overview - qui utilise Flink ?
33
Flink 1.0 - Projet en cours...
● FlinkML streaming
● Sortir Table SQL de la bêta
● D’autres connecteurs
34
Flink : Pour aller plus loin
Site officiel : https://flink.apache.org/
Training : http://dataartisans.github.io/flink-trai...
Gardons contact
● https://www.linkedin.com/in/BilalBaltagi
● bilal.baltagi@gmail.com
● @bilal_baltagi
http://www.meetup.co...
Prochain SlideShare
Chargement dans…5
×

Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015

1 472 vues

Publié le

Démarrer rapidement avec Apache Flink par Bilal Baltagi
- Présentation de l'éco Système Apache Flink
- Prise en main rapide

Bilal Baltagi a obtenu un master en analyse des données à l'Université Paris Nord - Paris 13. Il est actuellement consultant décisionnel chez Sarenza à Paris. Il intervient sur toutes les phases d'un projet décisionnel et Big data: recueil des besoins, conceptions, réalisations et accompagnement des utilisateurs. Bilal est de plus en plus intéressé à l'intersection de la Big Data avec la Business Intelligence et aime jouer avec Apache Flink!

Publié dans : Technologie
0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 472
Sur SlideShare
0
Issues des intégrations
0
Intégrations
192
Actions
Partages
0
Téléchargements
32
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015

  1. 1. Apache Flink Vue d’ensemble du framework Paris Spark Meetup 07/12/2015 Bilal BALTAGI @Bilal_baltagi
  2. 2. Plan ● Introduction à Apache Flink ● L'écosystème Apache Flink ● Que fournit Apache Flink ○ Batch ○ Streaming ○ FlinkML et Gelly ● Apache Flink overview 2
  3. 3. Introduction à Apache Flink ● Open-source Big Data Analytics Framework ● Conçu dès le départ pour : ○ In-memory process ○ Traitement en streaming ○ Nativement itérative ○ Mémoire autogérée ○ Optimisation basée sur le coût 3
  4. 4. Introduction à Apache Flink ● Origine : ○ Stratosphere : Projet universitaire ○ Né à Berlin en 2008 ● Quelques dates : ○ Avril 2014 : Apache Projet Incubation ○ Décembre 2014 : Apache Projet Top level ○ Novembre 2015 : Dernière release 0.10.1 4
  5. 5. Écosystème classique d’un Big data analytics framework 5
  6. 6. 6
  7. 7. Que fournis Apache Flink ● Moteur d'exécution : Distribué et évolutif ● Plusieurs API : ○ DataSet - Batch (Java, Scala et Python) ○ DataStream - temps réel (Java et Scala) ○ Table - Batch et temps réel (≈Relational SQL) 7
  8. 8. Que fournis Apache Flink ● Domain-specific library (DSL) : ○ FlinkML : Machine Learning ○ Gelly : Traitement des graphes 8
  9. 9. Actuellement le seul framework Open- source hybride : Batch and True Real Time 9
  10. 10. Apache Flink : Traitement Batch ● Cost-based optimisation du plan d'exécution ○ En fonction du contexte (Single machine, cluster…) ○ En fonction de la volumétrie des données sources 10
  11. 11. Apache Flink : Traitement Batch - plan d’execution 11
  12. 12. Apache Flink : Traitement Batch - plan d’execution 12
  13. 13. Apache Flink : Traitement Batch ● Flink gère sa propre mémoire : ○ Pas de Out-of-memory ○ Réduction du Garbage collector ○ Stabilité 13
  14. 14. Apache Flink : Traitement Batch case class Word (word: String, frequency: Int) val lines: DataSet[String] = env.fromElements( "O Romeo, Romeo! wherefore art thou Romeo?”, …) lines.flatMap {line => line.split(" ") .map(word => Word(word,1))} .groupBy("word") .sum("frequency") .print() 14
  15. 15. Apache Flink : Traitement Batch - comparaison TeraSort de 3,2To - 80Go/node Source : http://goo.gl/IqR97G 15
  16. 16. Apache Flink : Traitement Batch - comparaison HashJoin - 10 Noeud - 256Mo + 240Go Source : http://goo.gl/IqR97G 16
  17. 17. 4X Plus rapide que Spark 17
  18. 18. Apache Flink : Traitement temps réel ● N’est plus en bêta depuis le 23/11/2015 ● Low-latency : temps réel ● High throughput : Volumétrie élevée ● Fault-tolerance Exactly-once : Pas de traitement dupliqué 18
  19. 19. Apache Flink : Traitement temps réel ● Traitement native des itérations ● API riche : ○ Connecteurs (Flume, kafka, Twitter…) ○ Opérations identiques au batch 19
  20. 20. Apache Flink : Traitement temps réel ● Quelques cas ou le “vrai temps réel” est critique : ○ Détection des fraudes et anomalies ○ Gestion des trafics ○ Recommandation en ligne Source : http://spark.apache.org/faq.html 20
  21. 21. Apache Flink : Traitement temps réel Storm Vs. Flink Source : http://goo.gl/1Tgbn3 21
  22. 22. 260X Plus de données que Storm 22
  23. 23. Apache Flink : Traitement temps réel ● Exemple de traitement d’un flux continu avec Apache Flink : http://flink. apache.org/news/2015/12/04/Introducing-windows.html Capteur : Nombre de véhicules 23
  24. 24. Apache Flink : Traitement temps réel Rolling sum : Retourne en continue la somme du nombre de véhicules passés 24
  25. 25. Apache Flink : Traitement temps réel Tumbling windows: Retourne toutes les 60 secondes le nombre de véhicules qui viennent de passer 25
  26. 26. Apache Flink : Traitement temps réel Windows sliding : Retourne toutes les 30 secondes le nombre de véhicules qui sont passés au cours des 60 dernières secondes 26
  27. 27. Apache Flink : Traitement temps réel case class Word (word: String, frequency: Int) val lines: DataStream[String] = env.fromSocketStream(...) lines.flatMap {line => line.split(" ") .map(word => Word(word,1))} .window(Time.of(5,SECONDS)).every(Time.of(1,SECONDS)) .groupBy("word").sum("frequency") .print() 27
  28. 28. Apache Flink : FlinkML ● FlinkML : Machine learning ● Inspiré de ○ Sikit-learn : Spécification propre des pipelines ML ○ Spark’s MLLIB : Alogrithmes scalables 28
  29. 29. Apache Flink : Gelly ● Gelly : Traitement des graphes 29
  30. 30. Apache Flink : FlinkML et Gelly ● Points forts : ○ In-memory data streaming ○ Code identique entre machine locale (extrait des données) et cluster (toutes les données) ○ Traitement nativement itérative ■ Iteration ■ Delta-iteration 30
  31. 31. Apache Flink : FlinkML et Gelly ● Algorithmes avec itérations : ○ K-means ○ PageRank 31
  32. 32. Apache Flink : Overview Real-time Stream Cyclic Batch Machine Learning Graph 32
  33. 33. Apache Flink : overview - qui utilise Flink ? 33
  34. 34. Flink 1.0 - Projet en cours... ● FlinkML streaming ● Sortir Table SQL de la bêta ● D’autres connecteurs 34
  35. 35. Flink : Pour aller plus loin Site officiel : https://flink.apache.org/ Training : http://dataartisans.github.io/flink-training/ Gartner : http://goo.gl/mlgMoI KDnuggets : http://goo.gl/Z9hRvn Apache Flink vue par un développeur Spark : http://goo. gl/pygDyV 35
  36. 36. Gardons contact ● https://www.linkedin.com/in/BilalBaltagi ● bilal.baltagi@gmail.com ● @bilal_baltagi http://www.meetup.com/fr/Paris-Apache-Flink-Meetup/ 36

×