2
I. CONCEPTS DE BASE DU BIG DATA
3
I. Concepts de base du Big Data
La maturité du BigData conséquence de plusieurs disciplines
GRID Computing : Calcul parallèle et distribué, HPC (High Performance Computer), capacité de
calcul haute performance
Cloud Computing : Capacité de stockage infini, réparti et sécurisé, fragmentation/réplication
Internet of Things (IoT) : Ubiquitous Computing (informatique ambiante)
Multitudes de devices connectés (plages IPV6 suffisantes)
Exemples : les web services façades de tout objet pingable (caméra, capteur, etc.), La
voiture comme ordinateur ambulant, la télé-maintenance proactive, la traçabilité (RFID), le
tracking par GPS, etc.
Web 3.0 (Social, Sémantique) : SNA (Social Network Analysis)
Data Management : SQL, noSQL, DWH (datawarehousing), BI (Business Intelligence)
NLP (Natural Language Processing)
4
I. Concepts de base du Big Data
1 in 2 83% 5.4X
des chefs d'entreprise des responsables des plus probable que les plus
n'ont pas accès aux technologies de l'information et performants utilisent
données dont ils ont de la communication citent BI business analytics
besoin et analyses des données comme 5
part de leurs plan prévisionnel
I. Concepts de base du Big Data
4.6
30 billion RFID billion
Un monde tags today
500+ Million (1.3B in 2005)
camera
interconnecté et users posting 55 Million phones
tweets every day world
instrumenté wide
100s of
millions
of GPS
1.2 Trillion
searches
enabled
devices
sold
annually
1+ Billion 2+
active users billion
spending people
700 Million on the
minutes per
month
76 million smart Web by
meters in 2009… end 2011 6
200M by 2014
I. Concepts de base du Big Data
Établissement de
1 à 3 des chefs d'entreprise ne font
la Véracité des pas confiance à l'information qu'ils
grandes sources utilisent pour prendre des décisions
de données
Veracity
7
I. Concepts de base du Big Data
8
I. Concepts de base du Big Data
Les 5 principaux cas d'utilisation de données clés
Text Analysis
Spatial Analysis Statistics Image Analysis
10
I. Concepts de base du Big Data
Big Data et complexité dans la santé
“Medicine has become too complex (and only) about 20 percent of the knowledge clinicians use today is
evidence-based”
- Steven Shapiro, Chief Medical and Scientific Officer, UPMC
…to keep up with the state of the art, a doctor would have to devote 160 hours a week to perusing papers…”
The Economist Feb 14th 2013 11
I. Concepts de base du Big Data
Solutions Augmentez le
Plate-forme Big Data temps de valoriser
avec analytic et
Analytics and Decision Management
Rassembler, application
extraire et explorer accelerators
des données en
IBM Big Data Platform
utilisant la Analyser les
meilleure Visualization Applications & Systems données en continu
visualisation & Discovery Development Management pour des
informations en
Analyser de temps réel
manière rentable
Accelerators Indexer et
les petabytes
d'informations découvrir pour des
structurées et non Hadoop Stream Data Contextual idées collaboratives
structurées System Computing Warehouse Discovery
Gérer la qualité
des données et
gérer le cycle de Fournir une vision
vie de l'information approfondie avec les
Information Integration & Governance analyses avancées
de base de données
et les analyses
opérationnelles
Big Data Infrastructure
Cloud | Mobile | Security 12
I. Concepts de base du Big Data
Ingestion and Real-time Analytic Zone Analytics and
Reporting Zone
Un exemple de la Streams
Enterprise
Warehouse
Connectors
Predictive
Analytics
Hadoop
Documents
in variety of formats ETL, MDM, Data Governance
Services financiers
➢ Problème:
✓ Gérer les plusieurs Petabytes de données qui augmente de 40 à 100% par an sous
pression croissante pour prévenir les fraudes et se plaindre de la réglementation.
➢ Comment les grandes analyses de données peuvent-elles aider:
✓ Détection de fraude
✓ Gestion des risques
✓ Vue à 360 ° du client
15
I. Concepts de base du Big Data
Exemple d’utilisation de la plate-forme Big Data (2)
Services de télécommunication
➢ Problème:
✓ Les anciens systèmes sont utilisés pour obtenir des informations sur les données
produites en interne qui font face à des coûts de stockage élevés, à un long temps de
chargement des données et à un long processus d'administration.
➢ Comment les grandes analyses de données peuvent-elles aider:
✓ Traitement CDR
✓ Analyses Prédictives Fiables
✓ Geomapping / marketing
✓ Surveillance du réseau
16
I. Concepts de base du Big Data
Exemple d’utilisation de la plate-forme Big Data (3)
Services de transport
➢ Problème:
✓ La congestion du trafic a augmenté dans le monde grâce à une
urbanisation accrue et à une croissance démographique réduisant
l'efficacité des infrastructures de transport et augmentant le temps
de déplacement et la consommation de carburant.
➢ Comment les grandes analyses de données peuvent-elles aider:
✓ Analyse en temps réel des flux de données de congestion
météorologique et de trafic pour identifier les tendances de trafic
réduisant les coûts de transport.
17
II. ARCHITECTURE HADOOP
18
II. Architecture Hadoop
"Nous croyons que plus de la moitié des données mondiales seront stockées dans Apache Hadoop dans les cinq
ans" Hortonworks
20
II. Architecture Hadoop
Améliorations matérielles au cours des années ...
➢ Vitesses du CPU:
✓ 1990 - 44 MIPS à 40 MHz
✓ 2010 - 147 600 MIPS à 3,3 GHz
➢ La mémoire RAM
✓ 1990 - Mémoire conventionnelle 640K (mémoire étendue 256K recommandée)
✓ 2010 - 8-32GB (et plus)
➢ Capacité du disque
✓ 1990 - 20 Mo
✓ 2010 - 1To
➢ Latence du disque (vitesse de lecture et d'écriture) - pas beaucoup d'amélioration au cours des 7 à 10
dernières années, actuellement d'environ 70 à 80 Mo / s
21
II. Architecture Hadoop
Améliorations matérielles au cours des années ...
22
II. Architecture Hadoop
Le traitement de données en parallèle est la réponse!
23
II. Architecture Hadoop
Le traitement de données en parallèle est la réponse!
▪ Défis
✓ Hétérogénéité
✓ Ouverture
✓ Sécurité
✓ Évolutivité
✓ Concurrence
✓ Tolérance aux pannes
✓ Transparence
24
II. Architecture Hadoop
Qu'est-ce que Hadoop?
Structure logicielle open source Apache pour un calcul réparti, évolutif et distribué d'une quantité
massive de données
Masque les détails et les complexités du système pour l'utilisateur
Développé en Java
Composé de 3 sous-projets:
MapReduce
Hadoop Distributed File System «HDFS» : Système de fichiers distribués Hadoop
Hadoop Common
Soutenu par plusieurs projets liés à Hadoop
Hbase, Zookeeper, Avro, Etc.
Destiné à un matériel de produits hétérogènes
25
II. Architecture Hadoop
Les principes de conception de Hadoop
26
II. Architecture Hadoop
Les principes de conception de Hadoop
27
II. Architecture Hadoop
Hadoop n'est pas pour tous les types de travail
28
II. Architecture Hadoop
Qui utilise Hadoop?
29
II. Architecture Hadoop
Un peu d’histoire
30
II. Architecture Hadoop
Projets Open Source de Hadoop
Jaql
Oozie
31
II. Architecture Hadoop
Qu'est ce que Apache Hadoop?
32
II. Architecture Hadoop
Qu'est ce que Apache Hadoop?
Permet aux applications de travailler avec des milliers de nœuds et petabytes de données de manière
parallèle et rentable
✓ CPU + disks = "node" = nœud
✓ Les " nodes " peuvent être combinés en clusters
✓ De nouveaux " nodes" peuvent être ajoutés au besoin sans changer :
▪ Formats de données
▪ Comment les données sont chargées
▪ Comment les emplois sont écrits
33
II. Architecture Hadoop
Deux aspects clés de Hadoop
Framework MapReduce
✓ Comment Hadoop comprend et affecte le travail aux nœuds (machines)
34
II. Architecture Hadoop
Quel est le Hadoop Distributed File System?
➢ HDFS suppose que les nœuds échoueront Pour obtenir une fiabilité, HDFS effectue une réplication
des données sur plusieurs nœuds
➢ Le système de fichiers est construit à partir d'un cluster de nœuds de données, chacun d'entre eux
fournit des blocs de données sur le réseau en utilisant un protocole de bloc spécifique à HDFS.
35
II. Architecture Hadoop
Petite introduction à MapReduce
Logical File
36
II. Architecture Hadoop
Hadoop Common
37
II. Architecture Hadoop
Hadoop - Exigences d'installation
▪ Types d’installation :
– Single-node:
• opérations simples
• test local et débogage
– Multi-node cluster:
• opération de niveau de production
• des milliers de nœuds
38
II. Architecture Hadoop
Hadoop - Exigences d'installation
▪ Matériel:
– Peut utiliser du matériel de base
– Bonnes pratiques:
• RAM: MapReduce jobs sont principalement liés aux E/S planifiez suffisamment de RAM
• CPU: les processeurs haut de gamme ne sont souvent pas rentables
• Disks: utilisez des disques de haute capacité
• Network: dépend de la charge de travail, choisissez l'équipement de réseau haut de gamme pour les
grands clusters
39
II. Architecture Hadoop
Hadoop - Exigences d'installation
▪ Software:
– OS:
• GNU / Linux pour le développement et la production
• Windows / Mac pour le développement
– Java
– ssh
40
II. Architecture Hadoop
Propriétés de Hadoop
▪ Évolutif / Scalable
– De nouveaux nœuds peuvent être ajoutés en vol
▪ Abordable / Affordable
– Logiciel massivement parallèle sur les serveurs
▪ Flexible
– Hadoop est sans schéma et peut absorber tout type de données
▪ Tolérance de panne / Fault Tolerant
– Par le biais du framework MapReduce
41
III. SYSTÈME HDFS
42
III. Système HDFS
43
III. Système HDFS
HDFS – Blocks
➢ HDFS est conçu pour prendre en charge les fichiers très volumineux
➢ Chaque fichier est divisé en blocs (Par défaut : 64 Mo)
➢ Les blocs résident sur différents DataNode physiques
64 MB HDFS blocks
➢ Si un fichier ou un morceau du fichier est inférieur à la taille du bloc, seul l'espace requis est utilisé. Exemple:
un fichier de 210 Mo est divisé en :
64 MB 64 MB 64 MB 18 MB
45
III. Système HDFS
HDFS – Replication
• copyFromLocal / put
• Copie les fichiers du système de fichiers local dans fs
47
III. Système HDFS
• copyToLocal / get
• Copier des fichiers de fs dans le système de fichiers local
Ou
48
IV. MAPREDUCE
49
IV. MapReduce
▪ Introduction à MapReduce
▪ Tâches MapReduce (Tasks)
▪ Exemple WordCount
▪ Splits
▪ Exécution
▪ Planification
50
IV. MapReduce
Introduction à MapReduce
▪ Principes :
✓ Les données sont stockées sur l'ensemble du cluster
✓ Les programmes sont transmis aux données et non les données aux programmes
▪ Les données sont stockées sur l'ensemble
10110100 Cluster
du cluster (le DFS) 10100100
1
11100111
11100101
1 3 2
✓ L'ensemble du cluster participe au 00111010
01010010
11001001
2
01010011 4 1 3
système de fichiers Blocks 00010100
10111010
11101011
✓ Les blocs d'un seul fichier sont 3
11011011
01010110 2 4
10010101 4 2 3
00101010
répartis sur le cluster 10101110
1
4
01001101
01110100
✓ Un bloc donné est généralement
Logical File
répliqué pour la résilience 51
IV. MapReduce
Introduction à MapReduce
52
IV. MapReduce
Introduction à MapReduce
}
context.write(word, one); 1. Phase Map
}
} (diviser le travail en petites
public static class IntSumReducer
extends Reducer<Text,IntWritable,Text,IntWrita
private IntWritable result = new IntWritable();
parties)
Distribute map
public void reduce(Text key,
Iterable<IntWritable> val, Context context){
int sum = 0;
for (IntWritable v : val) { tasks to cluster 2. Shuffle
sum += v.get();
(transfert de sortie
. . .
intermédiaire pour le
traitement final)
Application
MapReduce
3. Phase Reduce
Shuffle (Combiner toutes les sorties
à un seul ensemble de
résultats)
53
IV. MapReduce
Introduction à MapReduce
54
IV. MapReduce
Introduction à MapReduce
✓ Une fois ces pièces traitées, les résultats sont distillés (dans l'étape de REDUCE) jusqu'à une seule
réponse.
55
IV. MapReduce
Architecture de MapReduce
Architecture de MapReduce
cluster Computer 1
JobTracker
➢ Si un TaskTracker est très lent, il peut retarder l'ensemble du travail MapReduce, en particulier vers la fin d'un
travail, où tout peut finir par attendre la tâche la plus lente. Avec l'exécution spéculative activée, cependant,
une seule tâche peut être exécutée sur plusieurs noeuds esclaves.
➢ Pour la planification des travaux, par défaut, Hadoop utilise FIFO (First in, First Out) et 5 priorités de
planification optionnelles pour programmer des tâches à partir d'une file d'attente de travail 57
IV. MapReduce
➢ Étape "Map":
✓ L'entrée se divise en morceaux
✓ Les nœuds ouvriers traitent des pièces individuelles en parallèle (sous contrôle global du
nœud JobTracker)
✓ Chaque nœud de travail stocke son résultat dans son système de fichiers local où un réducteur
(Reducer) peut y accéder
➢ Étape "Réduire":
✓ Les données sont agrégées («réduites» par les étapes de la carte) par les nœuds de travail
(sous le contrôle du JobTracker)
✓ Plusieurs tâches de réduction peuvent paralléliser l'agrégation 58
IV. MapReduce
Présentation de MapReduce
Distributed
FileSystem HDFS, 59
Map Shuffle Reduce
données en blocs
IV. MapReduce
Tâches MapReduce :
Map
Shuffle
Reduce
Combiner
60
IV. MapReduce
➢ Mappeurs (Mappers)
✓ Généralement un programme relativement petit avec une tâche relativement simple: il est
responsable de lire une partie des données d'entrée, d'interpréter, de filtrer ou de transformer les
données au besoin et enfin de produire un flux de paires <key, value>.
Map Phase
sort Fichier de sortie logique
10110100 1 map copy merge 10110100
10100100
1
11100111 10100100
11100101 11100111
00111010 11100101 To DFS
01010010
sort reduce 00111010
01010010
11001001
2
01010011
2 map 11001001
00010100
10111010 Fichier de sortie logique
11101011
sort merge 10110100
3
11011011
10100100
01010110
10010101
3 map 11100111
00101010 11100101 To DFS
reduce 00111010
10101110
01010010
4
01001101
sort 11001001
01110100
4 map
Fichier
d'entrée 61
logique
IV. MapReduce
➢ Mappeurs (Mappers)
✓ La sortie de chaque mappeur est regroupée localement par clé : key
✓ Un nœud est choisi pour traiter les données pour chaque clé unique
✓ Tout ce mouvement (shuffle) des données est orchestré de manière transparente par MapReduce
Shuffle
➢ Réducteurs (Reducers)
✓ Petits programmes (généralement) qui regroupent toutes les valeurs de la clé dont ils sont responsables
✓ Chaque réducteur écrit sa sortie dans son propre fichier
Reduce Phase
sort Fichier de sortie logique
10110100 1 map copy merge 10110100
10100100
1
11100111 10100100
11100101 11100111
00111010 11100101 To DFS
01010010
sort reduce 00111010
01010010
11001001
2
01010011
2 map 11001001
00010100
10111010 Fichier de sortie logique
11101011
sort merge 10110100
3
11011011
10100100
01010110
10010101
3 map 11100111
00101010 11100101 To DFS
reduce 00111010
10101110
01010010
4
01001101
sort 11001001
01110100
4 map
Fichier
d'entrée 63
logique
IV. MapReduce
JobTracker node
Tolérance aux pannes
JobTracker 3 JobTracker fails
heartbeat
child JVM
Child
1 Task fails
MapTask
or
ReduceTask
TaskTracker node 64
IV. MapReduce
Task Failure
▪ Si une tâche échoue, la JVM fait rapport à TaskTracker avant sa sortie. La tentative est marquée comme
échec, libérant l'emplacement pour une autre tâche.
▪ Si la tâche se bloque, elle est tuée. JobTracker reprogramme la tâche sur une autre machine.
▪ Si la tâche continue d'échouer, le travail échoue.
65
IV. MapReduce
TaskTracker Failure
▪ JobTracker ne reçoit aucun battement de coeur
▪ Supprime TaskTracker du pool de TaskTrackers pour planifier les tâches.
66
IV. MapReduce
JobTracker Failure
• Point de défaillance unique. Le travail échoue
67
IV. MapReduce
▪ Les travaux MapReduce sont programmés pour s'exécuter dans l'ordre où ils ont été mis en file d'attente,
du premier au dernier, et compte tenu de la priorité de la file d'attente.
▪ Il existe cinq files d'attente prioritaires: très bas, bas, normal, élevé, très élevé.
▪ Les travaux dans la file d'attente de priorité très élevée sont exécutés avant les travaux dans la file d'attente
de priorité élevée, etc.
68
IV. MapReduce
J3
J6 J2
J7 J5 J4 J1
69
IV. MapReduce
▪ Les tâches sont attribuées aux pools (1 pool par utilisateur par défaut)
▪ Un pool d'emplois utilisateur est un nombre de machines à sous assignées pour les tâches de cet utilisateur
▪ Chaque pool obtient le même nombre de créneaux fonctionnels par défaut
Mary soumet
beaucoup d'emplois …
Slot pour une tâche
▪ Plusieurs utilisateurs peuvent exécuter des travaux sur le cluster en même temps
▪ Exemple:
▪ Mary, John, Peter soumettent des emplois qui exigent respectivement 80, 80 et 120 tâches
▪ Disons que le cluster a une limite pour allouer 60 tâches au plus
▪ Comportement par défaut: distribuer une tâche équitablement parmi 3 utilisateurs (chacun obtient 20)
Nombre maximal de tâches pouvant être attribuées dans ce cluster : 60
▪ Si un utilisateur / travail donné est plus important que d'autres, vous pouvez définir une capacité
minimale (ou un partage minimum) pour un pool donné.
▪ Dans l’exemple, disons que Mary est le gestionnaire d'un département et a la priorité. Elle peut avoir
un pool où une part minimale a été fixée à 40.
▪ Ensuite, lorsque les travaux sont soumis par des utilisateurs différents, Mary obtiendrait son minimum
de 40, alors que les 20 tâches qui restent seraient réparties de manière uniforme sur les autres
utilisateurs, alors John recevrait 10 et Peter 10.
73
IV. MapReduce
SPARK
➢ La phase SHUFFLE de SPARK est totalement en mémoire sans aucun accès HDFS
➢ Les développeurs de Spark expliquent que le produit peut exécuter des tâches 100 fois plus vite que
MapReduce en cas de traitement en mémoire, et 10 fois plus vite sur disque.
74
IV. MapReduce
75