Cartographie du big data

925 vues

Publié le

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

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

Aucun téléchargement
Vues
Nombre de vues
925
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
90
Commentaires
0
J’aime
4
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 ?

×