2. ✘ Veuillez vous présenter :
✗ Vôtre nom et prénom
✗ Fonction, société
✗ Avez vous une expérience Big Data? Qu’avez vous fait ?
✗ Quelles sont vos attentes de ce cours ?
Tour de table
TOUR DE TABLE
3. Mehdi TAZI
✘ Architecte BigData
✘ Freelancer, ex OCTO
✘AXA, BNP, EDF, LA
POSTE, AL BARID BANK,
✘ ARCHI, DEV, ADMIN,
ORGA...
Contact :
> slack : slack.itinsight.fr
> web : tazimehdi.com / itinsight.fr
> mail : mehdi@tazimehdi.com / mehdi.tazi@itinsight.fr
4. ✘ Communication interactive par
thème
Déroulement
✘ Osez poser vos questions de façon interactive
> des termes utilisés, sujets non compris
> des problématiques liées à votre travail
> des questions d’ordre générale par thème
Technologique, Méthodologique, Organisationnelle…
5. Outils nécessaires
Cassandra Server : http://cassandra.apache.org/download/
Cassandra Dev Center : http://www.datastax.com/what-we-offer/products-services/devcenter
MongoDB server : https://www.mongodb.com/download-center#community
Horntonworks HDP : http://hortonworks.com/downloads/
Cloudera CDH : https://www.cloudera.com/downloads/quickstart_vms/5-10.html
VirtualBox
https://www.virtualbox.org/wiki/Downloads
8. Programme
✘ Introduction à la Big Data
✘ Vue d’ensemble
✘ Concepts architecturaux
✘ Couches et technologies
✘ Le NoSQL
✘ Datalake & Datalab
✘ Information generales & Atelier questions/reponses
10. Big data is like teenage sex : everyone talks about it, nobody
really knows how to do it, everyone thinks everyone else is
doing it, so everyone claims they are doing it...
Dan Ariely
13. Introduction à la Big Data
✘ Traitement et stockage massives des gros volumes de données
✘ Explosion quantitative des données numériques
C’est quoi la Big Data? (1/2)
14. Introduction à la Big Data
✘ Données provenant de plusieurs sources :
✗ Capteurs : température, pression…
✗ IOT : montres connectées, balances, Smartphones…
✗ Messages sur les réseaux sociaux : tweet, posts…
✗ Transactions et logs : banques, e-commerce…
✗ Images, vidéos et sons : instagram, youtube, snapchat, deezer, spotify…
✗ Autres : GPS, email, sms…
C’est quoi la Big Data? (2/2)
15. Introduction à la Big Data
Qu’est ce qui se passe chaque minute sur Internet?
Source : Qmee
log
Storage
RT Processing
ex : pic tag, batch concu
adds
RT Processing
16. Introduction à la Big Data
✘ Les solutions actuelles coûtent cher : archivage et traitement
✘ Répondre à des problématiques métiers avec plus de précision et de
rapidité.
✘ Améliorer la prise de décision basée sur l’analyse de très gros volumes de
données.
✘ Tirer un avantage concurrentiel à travers la collecte, l’analyse, la prédiction
et l’exploitation des données sur de grandes profondeurs. ( DDC )
✘ La création de nouveaux cas d’usages et de valeurs business basées sur la
données et la technologie. ( cloud , données …)
✘ Un outil au service du métier Une offre de service à part entière (AXA/ ERDF)
Quel est l’intérêt d’adopter le big data?
17. Introduction à la Big Data
✘ Au début c’était destiné aux gros acteurs du web et les grandes
multinationales :
✗ Facebook, Google, Amazon…
✗ Fedex, Walmart, Citi…
✘ Maintenant de plus en plus de monde y est concerné :
✗ De gros Acteurs : Axa, BNP Paribas, La Poste, EDF…
✗ Des nouveaux : Snapchat, whatsapp, pokemon go …
✗ Vous ?
Pour qui ?
18. Introduction à la Big Data
✘ Energie
✗ Amélioration de la production et distribution d’énergie
✗ Information en temps réel sur les débits et la qualité
✗ Détection des problèmes de réseaux
✗ Automatisation du processus de collecte de données
✘ Transport et distribution
✗ Optimisation des trajets et réductions des coûts
✗ Ajustement d’offre et de demande par zone géographique
✘ Produits de Luxe et grandes consommations
✗ Analyse de sentiments et retour produits *
✗ Amélioration de la satisfaction des clients
✗ Identification de nouveaux besoins et désirs *
✗ Recommandations
Cas d’usage réel (1/2)
19. Introduction à la Big Data
✘ E-Commerce
✗ Amélioration des stocks et de l’expérience clients.
✗ Gestion plus fine et dynamique des prix de vente
✗ Personnalisation des offres
✗ Pricing dynamique *
✗ Marketing ciblé
✘ Services publics et banques
✗ Archivage et données publiques
✗ Lute contre la fraude et abus *
✗ Amélioration des processus
✗ Sécurité
✘ Autres
✗ Fidéliser les clients des casinos en intervenant avant que les pertes des joueurs
ne soit trop élevées
✗ Détecter les potentiel futures boxs en pannes : météo, géolocalisation, état box.. *
Cas d’usage réel (2/2)
23. Questions / Réponses
> Comment définir le Big data en une seule phrase ?
> Pourquoi adopter le Big data ?
> Qu’est ce que la smart data ?
> Qu’est ce que le fast data ?
> Qu’est ce que l’open data ?
> A quelles problématiques répond le big data ?
> A quelles problématiques répond le fast data ?
27. Introduction à la Big Data
Propriété d’un Système big data - Les 5V
Variété
File
Json, CSV, Texte,
Png, Log ...
Vélocité
Batch
Periodic
Near RT
RealTime
100 ms, 30 min, 7h, 1j, 30000
events/time unit …
Volume
Mb
Gb
Tb
Pb
10Gb, 10Tb, 2Pb …
Véracité
31
2
Valeur
29. Questions / Réponses
> Citez les 3 principales propriétés d’un systèmes big data
> Citez deux autres propriétés
> Qu’elles sont les problématiques liées à la volumétries ?
> Qu’elles sont les problématiques liée à la vélocité ?
> Qu’elles sont les problématiques liée à véracité ?
34. Questions / Réponses
> Quelles sont les 5 grandes briques fonctionnelles d’un système bigdata ?
> Quelles sont les 4 grandes fonctionnalités que gère la brique de stockage
?
> Quelles sont les 3 grandes fonctionnalités que gère la brique de
traitement ?
> Quelles sont les 3 grandes fonctionnalités que gère la brique de sécurité
?
> Où se positionne un système Big Data par rapport au reste du SI ?
36. Concepts architecturaux
✘ Besoin : Traitement et stockage massif des gros volumes de données
✘ Limites : Ajouter plus de puissance aux machines :
✗ Stockage: Disque dur, mémoire …
✗ Traitement: CPU, parallélisme …
✘ Solution : Archiver et traiter l’information de façon distribuée afin de
bénéficier de plus de capacité de puissance
✘ Le Big data repose principalement sur les notions des systèmes
distribués!
Limitations & Besoin
38. Concepts architecturaux
Scalabilité verticale vs Scalabilité horizontale
16 GB
8 CPU
32 GB
16 CPU
Hardware
limitation !Scale-up Scale-up
Augmenter la puissance d’un système en ajoutant du matériels plus puissants
39. Concepts architecturaux
Scalabilité verticale vs Scalabilité horizontale
16 GB
8 CPU Scale out
24 CPU, 48 GO
Augmenter la puissance d’un systèmes en ajoutant de nouvelles machines
16 GB
8 CPU
16 GB
8 CPU
16 GB
8 CPU
Scale out
X CPU, Y GO
16 GB
8 CPU
16 GB
8 CPU
16 GB
8 CPU
16 GB
8 CPU
40. Concepts architecturaux
Scalabilité verticale vs Scalabilité horizontale
16 GB
8 CPU
32 GB
16 CPU
Limit !
16 GB
8 CPU
Scale-up
Scale-out Scale-out
16 GB
8 CPU
16 GB
8 CPU
16 GB
8 CPU
16 GB
8 CPU
16 GB
8 CPU
16 GB
8 CPU
16 GB
8 CPU
Scale-up
24 CPU, 48 GO X CPU, Y GO
Augmenter la puissance d’un système en ajoutant du matériels plus puissants
Augmenter la puissance d’un systèmes en ajoutant de nouvelles machines
42. Concepts architecturaux
Partitionnement
Collection A
File
File1
TB
Nœud 1 Nœud 2 Nœud 3 Nœud 4
256
GB
256
GB
256
GB
256
GB
✘ Répartir les données et traitements sur de multiples serveurs sur un cluster
✘ Le partitionnement permet d’absorber la charge (de stockage ou de
traitement).
Serveur logique
Cluster
43. Concepts architecturaux
Réplication
Collection A
BA C
Nœud 1 Nœud 2 Nœud 3
CA BA B C
Nœud 4
BA C
RF = 3
✘ Copier la donnée en de multiples exemplaires sur plusieurs nœuds du cluster
✘ Permet de garantir la disponibilité de l’ensemble des données même quand
un nœud du cluster disparaît (maintenance, crash, …)
✘ La probabilité de perte d’un nœud croît avec la taille du cluster
✘ Meilleur performance et sécurité.
44. Concepts architecturaux
Partitionnement et Réplication
Collection A
BA
Nœud 1 Nœud 2 Nœud 3
A2A1 A2B2 B1 A1
Nœud 4
B3B1 A3
RF = 3
B3 B3 B3
A2B2B1 A1A3 A3 B2
A = A1+A2+A3
B = B1+B2+B3
46. Concepts architecturaux
Architecture des disques (1/3)
✘ JBOD vs RAID
✗ JBOD : Just a Bunch Of Disks (3 disques de 1T = 3To de stockage)
✗ RAID : Redundant Array of Independent Disks (réplication physique)
✘ Quand utiliser quoi ?
✗ JBOD : Système avec redondance nœuds worker et de données
✗ RAID : Système sans redondance Nœuds Master, gestion du système
✘ Avantage :
✗ JBOD : Gagner de l‘espace disque, facile a mettre en place…
✗ RAID : Fiabilité de données, mais coûte plus cher...
50. Concepts architecturaux
Architecture des nœuds - Master / Slave – Sans HA
Nœud Master
Nœud Slave Nœud Slave
Application
Driver
writeread
SPOF
✘ Les nœuds master sont soit impliquer dans les opérations, soit ils ont
simplement un rôle mendiant d’acheminement, d’orchestration des opérations
read
> peut s’occuper du sharding/replication
> A connaissance de la topologies
51. Concepts architecturaux
Architecture des nœuds - Master / Slave avec HA
Master
active
Slave
Slave
Application
Driver
writeread
Standby Master
passive
Copie des données
On failover
✘ Reprise automatique
✘ Lag perte de messages lors d’un crash
53. Concepts architecturaux
Architecture des nœuds - Peer to Peer / En noeuds
Nœud 1
Nœud 2
Nœud 3
Nœud 4
✘ Tout les nœuds sont égaux
✘ Topologie connu par chaque nœud et non par le master
0-24
25-49
75-99
50-74
Masterless architecture
Application
Driver
R/W
58. Concepts architecturaux
Election des nœuds (3/4)
Nœud Primaire
Master
Nœud Secondaire
Slave
Arbiter
Réplication
Heartbeat
Election d’un nouveau nœud primaire Utilisé simplement pour le vote
70. Datalake
Définition
Réseaux sociaux et
streaming
Fichiers et logs
Bases de Données
DATA LAKE
Données structurées
Données semi-structurées
Données non structurées
STAGING
ARCHIVING
TRANSFORMING
HISTORISATION
Capteurs
ANALYTICS
PREDICTIONS
Pas performante pour du
traitement opérationnel
72. Hadoop
Distribution et technologies
3 grandes distributions sur le marché :
> Hortonworks : Expedia, ebay, Samsung, Spotify,...
> Cloudera : Cisco, Mastercard, Siemens, WesterUnion…
> MapR : HP , American express, Beats music, Ericsson...
BNP Parisbas La Poste
Credit
agricole
84. ✘ Designe a la fois le Framework et l’algorithme
✘ MapReduce est un framework pour traiter les données en parallèle sur
plusieurs machines algorithme distribués
✘ Les programmes MapReduce scalent sur des milliers de machines.
Hadoop
MapReduceFILEA
split #1
SPLITSDATA
<k,v> paire
RESULT
split #2
split #3
<k,v> paire
<k,v> paire
map
map
map
reduce
reduce
reduce
MAPPERS SHUFFLING
SORTING
REDUCERS RESULT
85. Lab Hadoop
Getting started with HDFS
1. opérations de base via UI
2. opérations de base via la command line
Commands :
https://hadoop.apache.org/docs/current/hadoop-project-
dist/hadoop-common/FileSystemShell.html
86. Lab Hadoop
TP HDFS - Industrialisation des
requêtes standards
1. Création de « Container » pour des entités
2. Création de Projet au sein de l’entité
3. Création Compte pour les nouveaux arrivant
4. Changement Droit pour les utilisateurs
1. Mode classique
2. Mode avancé ( optionnel )
90. Hadoop
• Langage SQL Like
• Catalog Métadonnée
• Différents drivers
• Se base sur Yarn
91. ✘ Requêtes SQL Like traitements logiques et analytiques
✘ Hive fournit plusieurs modes d’interaction : Console CLI (beeline), Interface
Web UI, Drivers ODBC et JDBC
WebUI
(x)DBC
CLI
Beeline
HiveServer2
metastore
YARN
HDFS
MapReduce / Tez
user
Hadoop Core
Hive
Hadoop
92. Lab Hadoop
LAB Hive
1. Exemple table interne
2. Exemple table externe
3. Suppression des tables
4. Vos remarques sur les données et le schéma
93.
94. Lab Hadoop
TP Hive
1. Créer script ingestion plusieurs fichiers vers table
2. Créer table externe associée
3. Donner les droits sur le répertoire de base de donnée pour l’entité de la racine
95. Lab Hadoop
LAB Hive
1. Administrer les jobs MR exécuté par HIVE
2. Tuer le job
3. Vérifier base de donnée Metastore
4. Activation Hive on Spark
96. Lab Hadoop
LAB Impala
1. Exemple table interne
2. Exemple table externe
3. Suppression des tables
4. Remarques
97. Lab Hadoop
TP Impala
1. Créer un script ingestion de plusieurs fichiers vers une table
2. Créer table externe associée
3. Donner les droits sur le répertoire de base de donnée pour l’entité de la racine
99. Lab MongoDB - Introduction
sources : https://docs.mongodb.com et https://www.mongodb.com/mongodb-architecture
✘ Analyse de la solution :
> Section Introduction
> Technologie de stockage BigData (Database)
> Scalable horizontalement
> Section DataModel
> Schema design Orienté document
> Format BSON
> Section Réplication :
> Architecture Master/Slave
> Élection des nœuds avec/sans Arbiter
> Section Sharding
> Distribution par élément (Document)
> Distribution aléatoire et ordonnée (RangeBased/HashBased)
> Section MongoDB CRUD Operations
> Le write level est paramétrable (write concen)
> Architecture + Web CAP Théorème
> MongoDB est « CA » et « CP » si on utilise le safe=true ( besoin de creuser )
100. Lab MongoDB - Introduction
✘ Base de données open-source
✘ Base de données orientée documents
✘ Répond aux besoins de volumétries et de performances
✘ Réplication et Failover pour une haute disponibilité
✘ Auto Sharding pour une scalabilité horizontale
✘ Accepte le paradigme Map/Reduce
✘ Gestion facile des données géo-spatiales
106. Lab MongoDB
✘ CLI : exercices
// 1
CREATE TABLE users
(
id varchar(5),
age int,
name varchar(100),
status varchar(10)
);
INSERT INTO users(id,age,name)
VALUES (”usr001”,30,”Mehdi");
// 2
ALTER TABLE users
DROP COLUMN status
// 3
SELECT *
FROM users
WHERE name != "Mehdi"
// 4 index asc
CREATE INDEX idx_name ON users(name)
// 5
SELECT name, age
FROM users
// 6
SELECT *
FROM users
WHERE name = "Omar" OR age > 50
// 7
SELECT *
FROM users
LIMIT 5
SKIP 10
// 8
EXPLAIN SELECT *
FROM users
WHERE name = "Mehdi"
// 9
UPDATE users
SET age = age + 3
WHERE age < 20
// 10
DELETE
FROM users
WHERE age < 18
111. Lab MongoDB
✘ Alimentation de la table people
> Créer une fonction qui permet d’ajouter une personne
> Créer une fonction qui permet de supprimer toutes les personnes n’ayant aucune
compétence
> Créer une fonction qui permet de lister toutes les personnes plus âgé que 35ans et
ayant plus de 2 compétences
> Créer une fonction qui permet d’afficher toutes les personnes ayant au moins 30ans
ou travaillant chez la BNP
> Créer une Une page HTML qui permet de lister toutes les personnes par unité de 10
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-
driver</artifactId>
<version>3.2.2</version>
</dependency>
</dependencies>
MongoClient mongoClient = new MongoClient();
MongoDatabase db =
mongoClient.getDatabase("mydb");
MongoCollection<Document> people =
db.getCollection("people");
Document document = new
Document("lastname","TAZI");
FindIterable<Document> documents =
people.find(document);
117. Lab Cassandra - Introduction
✘ Base de données open-source
✘ Base de données orientée colonnes
✘ Répond aux besoins de volumétrie et de performance
✘ Réplication et Failover pour une haute disponibilité
✘ Auto Sharding pour une scalabilité horizontale
✘ Gestion automatique de la réplication des Datacenter
✘ Gestion facile des données timeseries