Cartographie du big data
29 septembre 2015
Arnaud Cogoluègnes
Data Science
Hadoop
MapReduce
HDFS
Spark
Machine Learning
Hive
Pig
Architecture
lambda
Cascading
Flink
Tez
Big Data
Fondamentaux du Big Data
Retour vers le futur : SGBDR
Les garanties ACID
Standard, portable
SQL-86 ... SQL:2011
select * from Book
Un point d’intégration
Image : http://www.eaipatterns.com/SharedDataBaseIntegration.html
Une fausse bonne idée ?
Image : http://www.eaipatterns.com/SharedDataBaseIntegration.html
?
Casser le monolithe
Services
Application A Application B Application C
Le web, comment scaler ?
IoT
Data
Corrélation
Prédiction
Adaptabilité
Stockage
Plus de données
Temps réel
Exploitation
Réactivité
Extraction
Technologies Big Data
http://crimsonrain.org/hawaii/index.php?title=File:Google-datacenter_2.jpg
Hadoop, un système distribué
Système de fichiers distribué : HDFS
API de programmation : MapReduce, YARN
Hadoop
HDFS
MapReduce, YARN
Votre application
HDFS
HDFS
MapReduce, YARN
Votre application
Tolérant aux pannes
Scalable
Formats de fichiers
Compression
Blocs, datanodes, namenode
file.csv B1 B2 B3 fichier composé de 3 blocs (taille par défaut d’un bloc : 128 Mo)
B1 B2 B1 B3...
HDFS, les limitations
Fichiers “append-only”
Bien pour “write once, read many times”
Peu de gros fichiers, bien
Plein de p...
MapReduce
HDFS
MapReduce
Votre application
Simple
Batch
Scalable
Jointure, distinct, group by
MapReduce
file.csv B1 B2 B3
Mapper
Mapper
Mapper
B1
B2
B3
Reducer
Reducer
k1,v1
k1,v2
k1 [v1,v2]
Le code va à la donnée
file.csv B1 B2 B3
Mapper
Mapper
Mapper
B1
B2
B3
Reducer
Reducer
k1,v1
k1,v2
k1 [v1,v2]
B1 B2 B1 B3
...
Hadoop 1
HDFS
MapReduce
Hadoop 2
HDFS
YARN
MapReduce
Votre
application
MapReduce, les limitations
Code bas niveau
Ré-utilisation difficile
Préférer les abstractions comme Cascading
Peu flexible...
Les successeurs de MapReduce
Flink
Spark
Tez
Plus flexibles
Plus “simples”
Comment stocker ?
Formats de fichiers
Compression
Parquet
SequenceFile
Texte
Avro
Pas de compression
Snappy
Deflate
GZIP
O...
La panoplie
YARN/MapReduce/Tez
API-based
(Spark, Cascading, Flink)
Hive
SQL
Pig
Script ETL
Votre application
Spark
Spark
Votre application
YARN Mesos Cluster natif
Tez
Apache Tez
MapReduce nouvelle génération
Cascading
API Java
Hive
SQL
Pig
Script ETL
Votre application
YARN
Cascading
Cascading
Votre application
MapReduce Tez Flink Hazelcast
Production-ready En cours
Big Data in Action
Architecture lambda : objectifs
● Tolérant aux pannes
● Latence faible
● Scalable
● Générique
● Extensible
● Requêtes “ad ...
Layers
Speed layer
Serving layer
Batch layer
Batch layer
Speed layer
Serving layer
Batch layer
Stockage des données.
Création des vues.
Serving layer
Speed layer
Serving layer
Batch layer
Accès aux vues batch.
Speed layer
Speed layer
Serving layer
Batch layer
Accès temps réel.
Architecture lambda
Flux de
données
Broker
Traitement
temps réel
Données
(append-only)
Traitement
batch
Vues batch
Vues te...
Batch layer
Speed layer
Serving layer
Batch layer
Hadoop (MapReduce, HDFS).
Thrift, Cascalog.
Serving layer
Speed layer
Serving layer
Batch layer
ElephantDB, BerkeleyDB.
Speed layer
Speed layer
Serving layer
Batch layer
Cassandra, Storm, Kafka.
Architecture lambda complète
Flux de
données
Broker
Traitement
temps réel
Données
(append-only)
Traitement
batch
Vues batc...
Application ETL - reporting
Flux de
données
Données
(append-only)
Traitement
batch
Vues batch
Application
Batch
Serving
Application temps réel
Flux de
données
Broker
Traitement
temps réel
Vues temps
réel
Application
Speed
Jointure flux et référentiel
Hadoop
Traitement
(jointures, transformation)
Flux
Reporting,
exploration
Données de référence
Gestion de données
Données brutes
Données
parsées
Traitement et
insertion
Archives Vues Transformations
Avro, GZIP
Rétenti...
Hive, Pig, API-based
UDF : User Defined Function
Hive
+
SQL (non-standard)
Prise en main rapide
Extensible avec UDF
-
Test...
Les outils SQL (Hive, Spark SQL)
A utiliser une fois les données traitées
Bien pour l’exploration
Ou pour les traitements ...
Outils intermédiaires (Pig)
Peut contenir de la logique
Pig Latin simple d’accès
Adapté à des traitements “one-shot”...
(e...
API-based (Spark, Cascading, Flink)
Pour les traitements plus complexes
Parsing, jointure, nettoyage, dé-duplication, etc
...
Temps réel
Temps réel
“Stream processing”
Flux d’événements
Traitements parallélisés
Ecriture dans une BD
Latence ~ 1 seconde
Temps réel - approche “classique”
Queues et consommateurs (“workers”)
Coordination des workers
Failover à implémenter
Cons...
Topologie Storm
spout
spout
bolt
bolt
bolt
bolt
bolt
Source de données
(ex. : Kafka)
Traitement
(ex. : filtre, aggrégation...
Parallèle et tolérant à la panne
Temps réel - outils et considérations
Samza
Delivery semantics
One-at-a-time
Storm
Spark Streaming
Flink
Micro batch
Déplo...
Datacenter abstrait
Abstrait, mon datacenter?
Additionner les serveurs/VM
Avoir un ensemble de ressources (CPU, RAM)
Demander de la ressource ...
Les solutions techniques
YARN
Mesos
Kubernetes
Optimisation des ressources
Grande maturité de déploiement nécessaire
Mesos
Projet open source, fondation Apache
Mature
Utilisateurs : Twitter, Apple, Viadeo, Airbnb
Adapté au Big Data et aux ...
Architecture de Mesos
Source : http://mesos.apache.org/documentation/latest/mesos-architecture/
Architecture de Mesos
Source : http://mesos.apache.org/documentation/latest/mesos-architecture/
“Frameworks” Mesos
Jenkins
Hadoop
Storm
Marathon
Spark
ElasticSearch
Chronos
Cassandra
Cluster Mesos
Marathon sur Mesos
Mesos and co, warning
Travail en amont nécessaire !
Packaging automatique
Déploiement automatique
Data Science
Statistiques
Médiane
Distribution
Ecart-type
Tendances
Moyenne
arithmétique
Five-number summary
“Scatterplot matrix”
Source : http://cdn-ak.f.st-hatena.com/images/fotolife/t/triadsou/20130124/20130124110747.png
Machine learning
Clustering
k-Nearest Neighbors
(k-NN)
Classification
Modèles
Prédiction
Régression linéaire
k-means
Arbre...
Big data, data science, etc!
Données
brutes
Données
traitées
Nouveau
produit
Communication
Exploration
Modèle,
statistique...
Big data, data science, etc!
Données
brutes
Données
traitées
Nouveau
produit
Communication
Exploration
Modèle,
statistique...
Big data, data science, etc!
Données
brutes
Données
traitées
Nouveau
produit
Communication
Exploration
Modèle,
statistique...
Big data, data science, etc!
Données
brutes
Données
traitées
Nouveau
produit
Communication
Exploration
Modèle,
statistique...
Big data, data science, etc!
Données
brutes
Données
traitées
Nouveau
produit
Communication
Exploration
Modèle,
statistique...
Big data, data science, etc!
Données
brutes
Données
traitées
Nouveau
produit
Communication
Exploration
Modèle,
statistique...
Big data, data science, etc!
Données
brutes
Données
traitées
Nouveau
produit
Communication
Exploration
Modèle,
statistique...
Big data, data science, etc!
Données
brutes
Données
traitées
Nouveau
produit
Communication
Exploration
Modèle,
statistique...
Big data, data science, etc!
Données
brutes
Données
traitées
Nouveau
produit
Communication
Exploration
Modèle,
statistique...
Conclusion
Pour résumer
Pensez au cloud pour le prototypage
Hadoop n’est pas un SGBDR
Adoptez une approche agile et itérative
Ne négl...
Merci !
Questions ?
Prochain SlideShare
Chargement dans…5
×

Cartographie du big data

1 206 vues

Publié le

Présentation matinale Big Data - Zenika Lille - Septembre 2015

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

Aucun téléchargement
Vues
Nombre de vues
1 206
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
102
Commentaires
0
J’aime
6
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Cartographie du big data

  1. 1. Cartographie du big data 29 septembre 2015 Arnaud Cogoluègnes
  2. 2. Data Science Hadoop MapReduce HDFS Spark Machine Learning Hive Pig Architecture lambda Cascading Flink Tez Big Data
  3. 3. Fondamentaux du Big Data
  4. 4. Retour vers le futur : SGBDR
  5. 5. Les garanties ACID
  6. 6. Standard, portable SQL-86 ... SQL:2011 select * from Book
  7. 7. Un point d’intégration Image : http://www.eaipatterns.com/SharedDataBaseIntegration.html
  8. 8. Une fausse bonne idée ? Image : http://www.eaipatterns.com/SharedDataBaseIntegration.html ?
  9. 9. Casser le monolithe Services Application A Application B Application C
  10. 10. Le web, comment scaler ?
  11. 11. IoT
  12. 12. Data Corrélation Prédiction Adaptabilité Stockage Plus de données Temps réel Exploitation Réactivité Extraction
  13. 13. Technologies Big Data
  14. 14. http://crimsonrain.org/hawaii/index.php?title=File:Google-datacenter_2.jpg
  15. 15. Hadoop, un système distribué Système de fichiers distribué : HDFS API de programmation : MapReduce, YARN
  16. 16. Hadoop HDFS MapReduce, YARN Votre application
  17. 17. HDFS HDFS MapReduce, YARN Votre application Tolérant aux pannes Scalable Formats de fichiers Compression
  18. 18. Blocs, datanodes, namenode file.csv B1 B2 B3 fichier composé de 3 blocs (taille par défaut d’un bloc : 128 Mo) B1 B2 B1 B3 B1 B2 B2 B3 DN 1 DN 2 DN 4DN 3 les datanodes stockent les blocs (le bloc 3 est ici sous-répliqué) B1 : 1, 2, 3 B2 : 1, 3, 4 B3 : 2, 4 Namenode le namenode gère les méta-données et s’assure de la réplication
  19. 19. HDFS, les limitations Fichiers “append-only” Bien pour “write once, read many times” Peu de gros fichiers, bien Plein de petits fichiers, pas bien
  20. 20. MapReduce HDFS MapReduce Votre application Simple Batch Scalable Jointure, distinct, group by
  21. 21. MapReduce file.csv B1 B2 B3 Mapper Mapper Mapper B1 B2 B3 Reducer Reducer k1,v1 k1,v2 k1 [v1,v2]
  22. 22. Le code va à la donnée file.csv B1 B2 B3 Mapper Mapper Mapper B1 B2 B3 Reducer Reducer k1,v1 k1,v2 k1 [v1,v2] B1 B2 B1 B3 B1 B2 B2 B3 DN 1 DN 2 DN 4DN 3 DN 1 DN 3 DN 4
  23. 23. Hadoop 1 HDFS MapReduce
  24. 24. Hadoop 2 HDFS YARN MapReduce Votre application
  25. 25. MapReduce, les limitations Code bas niveau Ré-utilisation difficile Préférer les abstractions comme Cascading Peu flexible et limité
  26. 26. Les successeurs de MapReduce Flink Spark Tez Plus flexibles Plus “simples”
  27. 27. Comment stocker ? Formats de fichiers Compression Parquet SequenceFile Texte Avro Pas de compression Snappy Deflate GZIP ORC
  28. 28. La panoplie YARN/MapReduce/Tez API-based (Spark, Cascading, Flink) Hive SQL Pig Script ETL Votre application
  29. 29. Spark Spark Votre application YARN Mesos Cluster natif
  30. 30. Tez Apache Tez MapReduce nouvelle génération Cascading API Java Hive SQL Pig Script ETL Votre application YARN
  31. 31. Cascading Cascading Votre application MapReduce Tez Flink Hazelcast Production-ready En cours
  32. 32. Big Data in Action
  33. 33. Architecture lambda : objectifs ● Tolérant aux pannes ● Latence faible ● Scalable ● Générique ● Extensible ● Requêtes “ad hoc” ● Maintenance minimale ● Debuggable
  34. 34. Layers Speed layer Serving layer Batch layer
  35. 35. Batch layer Speed layer Serving layer Batch layer Stockage des données. Création des vues.
  36. 36. Serving layer Speed layer Serving layer Batch layer Accès aux vues batch.
  37. 37. Speed layer Speed layer Serving layer Batch layer Accès temps réel.
  38. 38. Architecture lambda Flux de données Broker Traitement temps réel Données (append-only) Traitement batch Vues batch Vues temps réel Application Batch Serving Speed
  39. 39. Batch layer Speed layer Serving layer Batch layer Hadoop (MapReduce, HDFS). Thrift, Cascalog.
  40. 40. Serving layer Speed layer Serving layer Batch layer ElephantDB, BerkeleyDB.
  41. 41. Speed layer Speed layer Serving layer Batch layer Cassandra, Storm, Kafka.
  42. 42. Architecture lambda complète Flux de données Broker Traitement temps réel Données (append-only) Traitement batch Vues batch Vues temps réel Application Batch Serving Speed
  43. 43. Application ETL - reporting Flux de données Données (append-only) Traitement batch Vues batch Application Batch Serving
  44. 44. Application temps réel Flux de données Broker Traitement temps réel Vues temps réel Application Speed
  45. 45. Jointure flux et référentiel Hadoop Traitement (jointures, transformation) Flux Reporting, exploration Données de référence
  46. 46. Gestion de données Données brutes Données parsées Traitement et insertion Archives Vues Transformations Avro, GZIP Rétention permanente Parquet, Snappy Rétention 2 ans glissants Traitement (Cascading) HDFS BD temps réel
  47. 47. Hive, Pig, API-based UDF : User Defined Function Hive + SQL (non-standard) Prise en main rapide Extensible avec UDF - Testabilité médiocre Réutilisabilité médiocre Pas de contrôle du flot Logique disséminée Programmation par UDF Pig + Pig Latin Prise en main rapide Extensible avec UDF - Testabilité médiocre Réutilisabilité médiocre Logique disséminée Programmation par UDF API-based (Spark, Cascading, Flink) + API Java Testable unitairement Contrôle du flot Bonne réutilisabilité - Programmation nécessaire
  48. 48. Les outils SQL (Hive, Spark SQL) A utiliser une fois les données traitées Bien pour l’exploration Ou pour les traitements très simples Connecteurs JDBC (pour le reporting)
  49. 49. Outils intermédiaires (Pig) Peut contenir de la logique Pig Latin simple d’accès Adapté à des traitements “one-shot”... (ex. : rapports)
  50. 50. API-based (Spark, Cascading, Flink) Pour les traitements plus complexes Parsing, jointure, nettoyage, dé-duplication, etc En amont de l’exploration, du reporting
  51. 51. Temps réel
  52. 52. Temps réel “Stream processing” Flux d’événements Traitements parallélisés Ecriture dans une BD Latence ~ 1 seconde
  53. 53. Temps réel - approche “classique” Queues et consommateurs (“workers”) Coordination des workers Failover à implémenter Consommateur Consommateur Consommateur Consommateur
  54. 54. Topologie Storm spout spout bolt bolt bolt bolt bolt Source de données (ex. : Kafka) Traitement (ex. : filtre, aggrégation, count, etc) Topologie Source : https://storm.incubator.apache.org/
  55. 55. Parallèle et tolérant à la panne
  56. 56. Temps réel - outils et considérations Samza Delivery semantics One-at-a-time Storm Spark Streaming Flink Micro batch Déploiement Langages supportés Maturité Monitoring
  57. 57. Datacenter abstrait
  58. 58. Abstrait, mon datacenter? Additionner les serveurs/VM Avoir un ensemble de ressources (CPU, RAM) Demander de la ressource pour une application Le système se charge de la distribution
  59. 59. Les solutions techniques YARN Mesos Kubernetes Optimisation des ressources Grande maturité de déploiement nécessaire
  60. 60. Mesos Projet open source, fondation Apache Mature Utilisateurs : Twitter, Apple, Viadeo, Airbnb Adapté au Big Data et aux Microservices
  61. 61. Architecture de Mesos Source : http://mesos.apache.org/documentation/latest/mesos-architecture/
  62. 62. Architecture de Mesos Source : http://mesos.apache.org/documentation/latest/mesos-architecture/
  63. 63. “Frameworks” Mesos Jenkins Hadoop Storm Marathon Spark ElasticSearch Chronos Cassandra
  64. 64. Cluster Mesos
  65. 65. Marathon sur Mesos
  66. 66. Mesos and co, warning Travail en amont nécessaire ! Packaging automatique Déploiement automatique
  67. 67. Data Science
  68. 68. Statistiques Médiane Distribution Ecart-type Tendances Moyenne arithmétique Five-number summary
  69. 69. “Scatterplot matrix” Source : http://cdn-ak.f.st-hatena.com/images/fotolife/t/triadsou/20130124/20130124110747.png
  70. 70. Machine learning Clustering k-Nearest Neighbors (k-NN) Classification Modèles Prédiction Régression linéaire k-means Arbre de décisions
  71. 71. Big data, data science, etc! Données brutes Données traitées Nouveau produit Communication Exploration Modèle, statistiques Décisions
  72. 72. Big data, data science, etc! Données brutes Données traitées Nouveau produit Communication Exploration Modèle, statistiques Décisions Utilisateurs, capteurs, ...
  73. 73. Big data, data science, etc! Données brutes Données traitées Nouveau produit Communication Exploration Modèle, statistiques Décisions JSON, XML, messages, etc...
  74. 74. Big data, data science, etc! Données brutes Données traitées Nouveau produit Communication Exploration Modèle, statistiques Décisions Parsées, dé- doublonnées, triées, jointées, ... Spark, Cascading, Python
  75. 75. Big data, data science, etc! Données brutes Données traitées Nouveau produit Communication Exploration Modèle, statistiques Décisions Faire connaissance avec les données R, Python, Spark, Hive, Notebooks (IPython, Zeppelin)
  76. 76. Big data, data science, etc! Données brutes Données traitées Nouveau produit Communication Exploration Modèle, statistiques Décisions Spark MLib, Python SciKit, R, Weka, ... Classification, prédiction, ...
  77. 77. Big data, data science, etc! Données brutes Données traitées Nouveau produit Communication Exploration Modèle, statistiques Décisions Reporting, visualisation, ...
  78. 78. Big data, data science, etc! Données brutes Données traitées Nouveau produit Communication Exploration Modèle, statistiques Décisions Filtre anti-spam, moteur de recommandations, ...
  79. 79. Big data, data science, etc! Données brutes Données traitées Nouveau produit Communication Exploration Modèle, statistiques Décisions Influence sur les données
  80. 80. Conclusion
  81. 81. Pour résumer Pensez au cloud pour le prototypage Hadoop n’est pas un SGBDR Adoptez une approche agile et itérative Ne négligez pas l’industrialisation des dév.
  82. 82. Merci !
  83. 83. Questions ?

×