cartographie du big data

83
Cartographie du big data 29 septembre 2015 Arnaud Cogoluègnes

Upload: acogoluegnes

Post on 09-Jan-2017

907 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Cartographie du big data

Cartographie du big data29 septembre 2015

Arnaud Cogoluègnes

Page 2: Cartographie du big data

Data Science

Hadoop

MapReduce

HDFS

Spark

Machine Learning

Hive

Pig

Architecturelambda

Cascading

Flink

Tez

Big Data

Page 3: Cartographie du big data

Fondamentaux du Big Data

Page 4: Cartographie du big data

Retour vers le futur : SGBDR

Page 5: Cartographie du big data

Les garanties ACID

Page 6: Cartographie du big data

Standard, portable

SQL-86 ... SQL:2011

select * from Book

Page 7: Cartographie du big data

Un point d’intégration

Image : http://www.eaipatterns.com/SharedDataBaseIntegration.html

Page 8: Cartographie du big data

Une fausse bonne idée ?

Image : http://www.eaipatterns.com/SharedDataBaseIntegration.html

?

Page 9: Cartographie du big data

Casser le monolithe

Services

Application A Application B Application C

Page 10: Cartographie du big data

Le web, comment scaler ?

Page 11: Cartographie du big data

IoT

Page 12: Cartographie du big data

Data

Corrélation

Prédiction

Adaptabilité

StockagePlus de données

Temps réel

Exploitation

Réactivité

Extraction

Page 13: Cartographie du big data

Technologies Big Data

Page 14: Cartographie du big data

http://crimsonrain.org/hawaii/index.php?title=File:Google-datacenter_2.jpg

Page 15: Cartographie du big data

Hadoop, un système distribué

Système de fichiers distribué : HDFSAPI de programmation : MapReduce, YARN

Page 16: Cartographie du big data

Hadoop

HDFS

MapReduce, YARN

Votre application

Page 17: Cartographie du big data

HDFS

HDFS

MapReduce, YARN

Votre application

Tolérant aux pannes

Scalable

Formats de fichiers

Compression

Page 18: Cartographie du big data

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 3les datanodes stockent les blocs(le bloc 3 est ici sous-répliqué)

B1 : 1, 2, 3 B2 : 1, 3, 4B3 : 2, 4

Namenode

le namenode gère les méta-données et s’assure de la réplication

Page 19: Cartographie du big data

HDFS, les limitations

Fichiers “append-only”Bien pour “write once, read many times”

Peu de gros fichiers, bienPlein de petits fichiers, pas bien

Page 20: Cartographie du big data

MapReduce

HDFS

MapReduce

Votre application

Simple

Batch

Scalable

Jointure, distinct, group by

Page 21: Cartographie du big data

MapReduce

file.csv B1 B2 B3

Mapper

Mapper

Mapper

B1

B2

B3

Reducer

Reducer

k1,v1

k1,v2

k1 [v1,v2]

Page 22: Cartographie du big data

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

Page 23: Cartographie du big data

Hadoop 1

HDFS

MapReduce

Page 24: Cartographie du big data

Hadoop 2

HDFS

YARN

MapReduce Votreapplication

Page 25: Cartographie du big data

MapReduce, les limitations

Code bas niveauRé-utilisation difficile

Préférer les abstractions comme CascadingPeu flexible et limité

Page 26: Cartographie du big data

Les successeurs de MapReduce

Flink

SparkTez

Plus flexiblesPlus “simples”

Page 27: Cartographie du big data

Comment stocker ?

Formats de fichiers

Compression

Parquet

SequenceFile

Texte

Avro

Pas de compression

Snappy

Deflate

GZIP

ORC

Page 28: Cartographie du big data

La panoplie

YARN/MapReduce/Tez

API-based(Spark, Cascading, Flink)

HiveSQL

PigScript ETL

Votre application

Page 29: Cartographie du big data

Spark

Spark

Votre application

YARN Mesos Cluster natif

Page 30: Cartographie du big data

Tez

Apache TezMapReduce nouvelle génération

CascadingAPI Java

HiveSQL

PigScript ETL

Votre application

YARN

Page 31: Cartographie du big data

Cascading

Cascading

Votre application

MapReduce Tez Flink Hazelcast

Production-ready En cours

Page 32: Cartographie du big data

Big Data in Action

Page 33: Cartographie du big data

Architecture lambda : objectifs

● Tolérant aux pannes● Latence faible● Scalable● Générique

● Extensible● Requêtes “ad hoc”● Maintenance minimale● Debuggable

Page 34: Cartographie du big data

Layers

Speed layer

Serving layer

Batch layer

Page 35: Cartographie du big data

Batch layer

Speed layer

Serving layer

Batch layer

Stockage des données.Création des vues.

Page 36: Cartographie du big data

Serving layer

Speed layer

Serving layer

Batch layer

Accès aux vues batch.

Page 37: Cartographie du big data

Speed layer

Speed layer

Serving layer

Batch layer

Accès temps réel.

Page 38: Cartographie du big data

Architecture lambda

Flux de données

Broker Traitementtemps réel

Données(append-only)

Traitement batch

Vues batch

Vues temps réel

Application

Batch

Serving

Speed

Page 39: Cartographie du big data

Batch layer

Speed layer

Serving layer

Batch layer

Hadoop (MapReduce, HDFS).Thrift, Cascalog.

Page 40: Cartographie du big data

Serving layer

Speed layer

Serving layer

Batch layer

ElephantDB, BerkeleyDB.

Page 41: Cartographie du big data

Speed layer

Speed layer

Serving layer

Batch layer

Cassandra, Storm, Kafka.

Page 42: Cartographie du big data

Architecture lambda complète

Flux de données

Broker Traitementtemps réel

Données(append-only)

Traitement batch

Vues batch

Vues temps réel

Application

Batch

Serving

Speed

Page 43: Cartographie du big data

Application ETL - reporting

Flux de données

Données(append-only)

Traitement batch

Vues batch

Application

Batch

Serving

Page 44: Cartographie du big data

Application temps réel

Flux de données

Broker Traitementtemps réel

Vues temps réel

Application

Speed

Page 45: Cartographie du big data

Jointure flux et référentiel

Hadoop

Traitement(jointures, transformation)Flux

Reporting,exploration

Données de référence

Page 46: Cartographie du big data

Gestion de données

Données brutes Données parsées

Traitement et insertion

Archives Vues Transformations

Avro, GZIPRétention permanente

Parquet, SnappyRétention 2 ans glissants Traitement (Cascading)

HDFS BD temps réel

Page 47: Cartographie du big data

Hive, Pig, API-based

UDF : User Defined Function

Hive

+SQL (non-standard)Prise en main rapideExtensible avec UDF

-Testabilité médiocreRéutilisabilité médiocrePas de contrôle du flotLogique disséminéeProgrammation par UDF

Pig

+Pig LatinPrise en main rapideExtensible avec UDF

-Testabilité médiocreRéutilisabilité médiocreLogique disséminéeProgrammation par UDF

API-based(Spark, Cascading, Flink)

+API JavaTestable unitairementContrôle du flotBonne réutilisabilité

-Programmation nécessaire

Page 48: Cartographie du big data

Les outils SQL (Hive, Spark SQL)

A utiliser une fois les données traitéesBien pour l’exploration

Ou pour les traitements très simplesConnecteurs JDBC (pour le reporting)

Page 49: Cartographie du big data

Outils intermédiaires (Pig)

Peut contenir de la logiquePig Latin simple d’accès

Adapté à des traitements “one-shot”...(ex. : rapports)

Page 50: Cartographie du big data

API-based (Spark, Cascading, Flink)

Pour les traitements plus complexesParsing, jointure, nettoyage, dé-duplication, etc

En amont de l’exploration, du reporting

Page 51: Cartographie du big data

Temps réel

Page 52: Cartographie du big data

Temps réel

“Stream processing”Flux d’événements

Traitements parallélisésEcriture dans une BDLatence ~ 1 seconde

Page 53: Cartographie du big data

Temps réel - approche “classique”

Queues et consommateurs (“workers”)Coordination des workers

Failover à implémenter

Consommateur

Consommateur

Consommateur

Consommateur

Page 54: Cartographie du big data

Topologie Storm

spout

spout

bolt

bolt

bolt

bolt

bolt

Source de données(ex. : Kafka)

Traitement(ex. : filtre, aggrégation,

count, etc)

TopologieSource : https://storm.incubator.apache.org/

Page 55: Cartographie du big data

Parallèle et tolérant à la panne

Page 56: Cartographie du big data

Temps réel - outils et considérations

Samza

Delivery semantics

One-at-a-time

StormSpark Streaming

Flink

Micro batch

Déploiement

Langages supportés

Maturité

Monitoring

Page 57: Cartographie du big data

Datacenter abstrait

Page 58: Cartographie du big data

Abstrait, mon datacenter?

Additionner les serveurs/VMAvoir un ensemble de ressources (CPU, RAM)Demander de la ressource pour une application

Le système se charge de la distribution

Page 59: Cartographie du big data

Les solutions techniques

YARN

MesosKubernetes

Optimisation des ressourcesGrande maturité de déploiement nécessaire

Page 60: Cartographie du big data

Mesos

Projet open source, fondation ApacheMature

Utilisateurs : Twitter, Apple, Viadeo, AirbnbAdapté au Big Data et aux Microservices

Page 61: Cartographie du big data

Architecture de Mesos

Source : http://mesos.apache.org/documentation/latest/mesos-architecture/

Page 62: Cartographie du big data

Architecture de Mesos

Source : http://mesos.apache.org/documentation/latest/mesos-architecture/

Page 63: Cartographie du big data

“Frameworks” Mesos

Jenkins

Hadoop

StormMarathon

Spark

ElasticSearch

ChronosCassandra

Page 64: Cartographie du big data

Cluster Mesos

Page 65: Cartographie du big data

Marathon sur Mesos

Page 66: Cartographie du big data

Mesos and co, warning

Travail en amont nécessaire !Packaging automatiqueDéploiement automatique

Page 67: Cartographie du big data

Data Science

Page 68: Cartographie du big data

Statistiques

Médiane

Distribution

Ecart-typeTendances

Moyenne arithmétique

Five-number summary

Page 69: Cartographie du big data

“Scatterplot matrix”

Source : http://cdn-ak.f.st-hatena.com/images/fotolife/t/triadsou/20130124/20130124110747.png

Page 70: Cartographie du big data

Machine learning

Clusteringk-Nearest Neighbors

(k-NN)

ClassificationModèles

Prédiction

Régression linéaire

k-meansArbre de décisions

Page 71: Cartographie du big data

Big data, data science, etc!

Données brutes

Donnéestraitées

Nouveau produit

Communication

Exploration

Modèle,statistiques

Décisions

Page 72: Cartographie du big data

Big data, data science, etc!

Données brutes

Donnéestraitées

Nouveau produit Communication

Exploration

Modèle,statistiques

Décisions

Utilisateurs, capteurs, ...

Page 73: Cartographie du big data

Big data, data science, etc!

Données brutes

Donnéestraitées

Nouveau produit Communication

Exploration

Modèle,statistiques

Décisions

JSON, XML, messages, etc...

Page 74: Cartographie du big data

Big data, data science, etc!

Données brutes

Donnéestraitées

Nouveau produit Communication

Exploration

Modèle,statistiques

Décisions

Parsées, dé-doublonnées, triées, jointées, ...

Spark, Cascading, Python

Page 75: Cartographie du big data

Big data, data science, etc!

Données brutes

Donnéestraitées

Nouveau produit Communication

Exploration

Modèle,statistiques

Décisions

Faire connaissance avec les données

R, Python, Spark, Hive, Notebooks (IPython, Zeppelin)

Page 76: Cartographie du big data

Big data, data science, etc!

Données brutes

Donnéestraitées

Nouveau produit Communication

Exploration

Modèle,statistiques

Décisions

Spark MLib, Python SciKit, R, Weka, ...

Classification, prédiction, ...

Page 77: Cartographie du big data

Big data, data science, etc!

Données brutes

Donnéestraitées

Nouveau produit Communication

Exploration

Modèle,statistiques

Décisions

Reporting, visualisation, ...

Page 78: Cartographie du big data

Big data, data science, etc!

Données brutes

Donnéestraitées

Nouveau produit Communication

Exploration

Modèle,statistiques

Décisions

Filtre anti-spam, moteur de recommandations, ...

Page 79: Cartographie du big data

Big data, data science, etc!

Données brutes

Donnéestraitées

Nouveau produit Communication

Exploration

Modèle,statistiques

DécisionsInfluence sur les données

Page 80: Cartographie du big data

Conclusion

Page 81: Cartographie du big data

Pour résumer

Pensez au cloud pour le prototypageHadoop n’est pas un SGBDR

Adoptez une approche agile et itérativeNe négligez pas l’industrialisation des dév.

Page 82: Cartographie du big data

Merci !

Page 83: Cartographie du big data

Questions ?