Big Data 2020
Big Data 2020
Big Data 2020
2
I. CONCEPTS DE BASE DU BIG DATA
3
I. Concepts de base du Big Data
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é users posting 55 Million phones
tweets every day world
et 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
Text Analysis
Spatial Analysis Statistics Image Analysis
10
I. Concepts de base du Big Data
“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
Streams Reporting Zone
Un exemple de la
plate-forme Big Warehousing Zone
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
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
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
Importance de 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
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
22
II. Architecture Hadoop
23
II. Architecture Hadoop
Défis
Hétérogénéité
Ouverture
Sécurité
Évolutivité
Concurrence
Tolérance aux pannes
Transparence
24
II. Architecture 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
26
II. Architecture Hadoop
27
II. Architecture Hadoop
28
II. Architecture Hadoop
29
II. Architecture Hadoop
Un peu d’histoire
30
II. Architecture Hadoop
Jaql
Oozie
31
II. Architecture Hadoop
32
II. Architecture 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
Framework MapReduce
Comment Hadoop comprend et affecte le travail aux nœuds (machines)
34
II. Architecture Hadoop
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
Logical File
36
II. Architecture Hadoop
Hadoop Common
37
II. Architecture Hadoop
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
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
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
Peut être défini par un script qui spécifie quel nœud est sur quel rack.
Le script est référencé dans topology.script.property.file dans core-site.xml
Exemple de propriété:
<property>
<name>topology.script.file.name</name>
<value>/opt/ibm/biginsights/hadoop-conf/rack-aware.sh</value>
</property>
Le script de topologie de réseau (topology.script.file.name dans l'exemple ci-dessus) reçoit
comme arguments une ou plusieurs adresses IP de nœuds dans le cluster. Il retourne sur une
liste de noms de rack, une pour chaque entrée. L'ordre d'entrée et de sortie doit être cohérent.
47
III. Système HDFS
HDFS – Namenode
NameNode lit fsimage dans la mémoire
NameNode applique les changements dans le journal d'édition (EditLog)
NameNode attend des données de blocs à partir de nœuds de données
Namenode ne stocke pas les informations de bloc
Namenode sort en mode Safemode lorsque 99,9% des blocs ont au moins une copie représentative
2. Lire et appliquer
Editlog
datanode2
datadir
namedir block1
editlog block2
…
fsimage … 48
III. Système HDFS
datanode2
datadir
namedir block1
editlog block2
…
fsimage …
49
III. Système HDFS
Supprimer le noeud
Supprimez simplement DataNode
Mieux: Ajouter un noeud et attendre que tous les blocs aient été déplacés
hadoop fs <args>
• Exemple:
• Liste le contenu du répertoire actuel dans hdfs
hadoop fs –ls .
51
III. Système HDFS
hadoop fs –copyFromLocal
file://myfile.txt
hdfs://localhost:9000/user/keith/myfile.txt
• Scheme et authority sont facultatifs
• Les valeurs par défaut sont prises à partir du fichier de configuration core-site.xml
52
III. Système HDFS
• cat, chgrp, chmod, chown, cp, du, ls, mkdir, mv, rm, stat, tail
53
III. Système HDFS
• copyFromLocal / put
• Copie les fichiers du système de fichiers local dans fs
54
III. Système HDFS
• copyToLocal / get
• Copier des fichiers de fs dans le système de fichiers local
Ou
55
IV. MAPREDUCE
56
IV. MapReduce
Introduction à MapReduce
Tâches MapReduce (Tasks)
Exemple WordCount
Splits
Exécution
Planification
57
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
10110100 Cluster
l'ensemble 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
58
IV. MapReduce
Introduction à MapReduce
59
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)
60
IV. MapReduce
Introduction à 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.
62
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 64
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 65
IV. MapReduce
Présentation de MapReduce
Distributed
FileSystem HDFS, 66
Map Shuffle Reduce
données en blocs
IV. MapReduce
Tâches MapReduce :
Map
Shuffle
Reduce
Combiner
67
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 68
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 70
logique
IV. MapReduce
Tiger Tiger
SELECT COUNT(NAME) FROM ANIMALS Lion Tiger
WHERE NAME IN (Tiger, Lion …) Lion Wolf
GROUP BY NAME;
Panther Panther
Wolf …
…
71
IV. MapReduce
Map Input
Les tâches de MAP ont besoin de paires de clés et de valeurs comme entrée
Si aucune clé n'est disponible, elle doit être fabriquée
Le mappage de l'entrée (fichiers, lien Web, ...) à paires <key, value> sont effectuées dans la
classe InputFormat
Node 1 Node 2
<Tiger, Tiger> <Tiger, Tiger>
<Lion, Lion> <Tiger, Tiger>
<Lion, Lion> <Wolf, Wolf>
<Panther, Panther> <Panther, Panther>
<Wolf, Wolf> …
…
72
IV. MapReduce
Tâche Map
Nous avons deux tâches dans notre tâche de MAP
Filtrer les lignes contenants non-grand chat
Préparer le compte en les transformant en <Text(name), Integer(1)>
Node 1 Node 1
<Tiger, Tiger> <Tiger, 1>
<Lion, Lion> <Lion, 1>
<Lion, Lion> <Lion, 1>
<Panther, Panther> <Panther, 1>
<Wolf, Wolf> …
…
Node 2 Node 2
<Tiger, Tiger> <Tiger, 1>
<Tiger, Tiger> <Tiger,1> Les tâches de Map sont
<Wolf, Wolf> <Panther, 1> exécutées localement
<Panther, Panther> … sur chaque partition
…
73
IV. MapReduce
Shuffle déplace toutes les valeurs d'une Key sur le même noeud cible
Tâche Shuffle La réduction des tâches peut s'exécuter sur des nœuds arbitraires, dans
notre exemple Nœud 1 et 3
Le nombre de tâches Map et Reduce ne doit pas être identique
Node 1 Node 1
Node 2 Node 3
75
IV. MapReduce
Reduce
La tâche de réduction calcule les valeurs agrégées pour chaque clé
Normalement, la sortie est écrite dans DFS
Par défaut, un fichier de sortie par tâche de réduction
Node 1 Node 1
<Panther,
<Tiger, 1,1,1>
<1,1>> <Panther, 2>
<Panther,
<Tiger, <1,1,1>>
1,1> <Tiger, 3>
… …
Node 3 Node 3
<Lion, <1,1>>
1,1> <Lion, 2>
… …
Facultatif: Combiner
Pour des raisons de performance, une tâche d’agrégation locale dans la carte peut être utile
Réduit la quantité de données qui doivent être copiées sur le réseau
Également réduit l'effort de fusion
Après la tâche Map et avant Shuffle
Node 1 Node 1
<Tiger, 1> <Tiger, 1>
<Lion, 1> <Lion, 2>
<Lion, 1> <Panther, 1>
<Panther, 1> …
…
Node 2
Node 2
<Tiger, 1> <Tiger, 2>
<Tiger,1> Combiner crée des agrégats locaux <Panther, 1>
<Panther, 1> sur chaque nœud de carte, réduit la …
… quantité de données qui doivent être
copiées sur le réseau 77
IV. MapReduce
Splits
78
IV. MapReduce
Classes
79
IV. MapReduce
RecordReader
Node 1 Node 2
Tiger\n ther\n
Tiger\n Tiger\n
Lion\n Wolf\n
Pan Lion
Dans cet exemple, RecordReader1 ne s'arrête pas à "Pan", mais lira jusqu'à la fin de la ligne.
De même RecordReader2 ignorera la première ligne
HDFS enverra la pièce manquante du dernier enregistrement sur le réseau
De même, LineRecordReader du bloc 2 ignore la première ligne incomplète
80
IV. MapReduce
Comment Hadoop
2. get new job ID
exécute-t-il des MapReduce 1. run job 5. initialize job
JobClient JobTracker
program
4. submit job
emplois client JVM
jobtracker node
client node
MapReduce?
7. heartbeat
6. retrieve
3. copy job (returns task)
input splits
resources
Distributed TaskTracker
8. retrieve
file system
job resources 9. launch
(e.g. HDFS)
child JVM
10. run
JobTracker: coordonne l'exécution du travail, décompose le travail pour
MapTask
Map et réduire les tâches pour chaque nœud pour travailler sur le cluster or
ReduceTask
TaskTracker: exécutez la Map et les fonctions de réduction tasktracker node 81
IV. MapReduce
JobTracker node
Tolérance aux pannes
JobTracker 3 JobTracker fails
heartbeat
child JVM
Child
1 Task fails
MapTask
or
ReduceTask
TaskTracker node 82
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.
83
IV. MapReduce
TaskTracker Failure
JobTracker ne reçoit aucun battement de coeur
Supprime TaskTracker du pool de TaskTrackers pour planifier les tâches.
84
IV. MapReduce
JobTracker Failure
• Point de défaillance unique. Le travail échoue
85
IV. MapReduce
Configuration
mapred-site.xml
– Paramètres de configuration de MapReduce (préfixé avec mapred.)
– Ces paramètres sont globaux, certains paramètres peuvent être modifiés par tâche de Map
Paramètre Description
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.
87
IV. MapReduce
J3
J6 J2
J7 J5 J4 J1
88
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.
92
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.
93
IV. MapReduce
94
V. HADOOP QUERY LANGUAGES
95
V. Hadoop Query Languages
Pig
Hive
Jaql
…
96
V. Hadoop Query Languages
Données brutes
Données brutes
Schéma
pour filtrer Stockage
(non filtré,
Données brutes)
Schéma
pour filtrer
Stockage
(Données pré-filtrées) Output 97
V. Hadoop Query Languages
Dans un DW traditionnel, vous savez déjà ce que vous pouvez demander, alors que dans
Hadoop, vous déchargez toutes les données brutes non filtrées dans le HDFS et elles
commencent à poser les questions.
Les entrepôts traditionnels sont surtout idéaux pour analyser les données structurées
provenant de différents systèmes et produire des connaissances avec des mesures connues et
relativement stables.
Une plate-forme basée sur Hadoop est bien adaptée pour traiter les données semi-structurées
et non structurées, ainsi que lorsqu'un processus de découverte de données est nécessaire.
Cela ne veut pas dire que Hadoop ne peut pas être utilisé pour des données structurées
facilement disponibles en format brut.
98
V. Hadoop Query Languages
SGBDR/RDBMS Hadoop
Données structurées avec des schémas
Les sources de données Non structuré et structuré
connus
Mises à jour des données Mises à jour autorisées Insère et supprime uniquement
Language SQL & XQuery Pig (Pig Latin), Hive (HiveQL), Jaql
Bien que le framework Hadoop soit implémenté en Java, les applications MapReduce n'ont
pas besoin d'être écrites en Java.
Pour abstraire les complexités du modèle de programmation Hadoop, quelques langues de
développement d'applications ont vu le jour sur le développement de Hadoop:
Pig
Hive
Jaql
Jaql
100
V. Hadoop Query Languages
101
V. Hadoop Query Languages
Type de
Data flow Data flow SQL SQL
langue
Structures de
JSON, semi Principalement Principalement
données Complexe
structurée structuré structuré
supportées
102
V. Hadoop Query Languages
Pig
Pig
104
V. Hadoop Query Languages
Pig
Types complexes :
http://pig.apache.org/docs/r0.10.0/basic.html#Data+Types+and+More 105
V. Hadoop Query Languages
Pig
Exemple: wordcount.pig
-- Extract words from each line and put them into a pig bag
-- datatype, then flatten the bag to get one word on each row
words = FOREACH input GENERATE FLATTEN(TOKENIZE(line)) AS word;
106
V. Hadoop Query Languages
Pig
http://pig.apache.org/docs/r0.10.0/basic.html 107
V. Hadoop Query Languages
Hive
Qu'est-ce que Hive?
Infrastructure d'entrepôt de données intégrée à Hadoop
Fournit un langage SQL comme HiveQL
Permet aux développeurs SQL et aux analystes commerciaux de tirer parti des compétences
SQL existantes
Offre des UDF (User-Defined Function) intégrés et indexation
Qu'est-ce que Hive n'est pas?
Non conçu pour les requêtes à faible latence, contrairement au RDBMS tel que DB2 et
Netezza
Pas de schéma sur l'écriture
Pas pour OLTP (OnLine Analytical Processing ou traitement analytique en ligne)
108
Non entièrement compatible SQL, ne comprennent que les commandes limitées
V. Hadoop Query Languages
Hive
Bien que Pig puisse être un langage assez puissant et simple à utiliser, l'inconvénient est qu'il
est quelque chose de nouveau à apprendre et à maîtriser. Facebook a développé une structure
de support Hadoop en cours d'exécution qui permet à toute personne qui maîtrise déjà SQL (ce
qui est banal pour les développeurs de bases de données relationnelles) de tirer parti de la
plate-forme Hadoop juste à l'extérieur de la porte. Ce language, appelée Hive, permet aux
développeurs SQL d'écrire des déclarations Hive Query Language (HQL) qui sont similaires aux
instructions SQL standard (bien que HQL soit limité dans les commandes qu'elle comprend), au
lieu d'apprendre une nouvelle langue telle que Pig Latin.
109
V. Hadoop Query Languages
Hive
Composants :
Shell
Driver
Compiler
Engine
Metastore
Modèles de données :
Tables
• Comparé aux tables dans SGBDR, composé de colonnesPartitions
• Pour optimiser l'accès aux données
Buckets
• Les données dans chaque partition peuvent à leur tour être divisées en Buckets en
fonction d'une colonne dans le tableau
110
V. Hadoop Query Languages
Hive
Shell - L'interface utilisateur pour les utilisateurs de soumettre des requêtes et d'autres
opérations au système. Actuellement, le système dispose d'une interface de ligne de
commande et une interface graphique basée sur le Web est en cours de développement.
Driver - Le composant qui reçoit les requêtes. Ce composant implémente la notion de gestion
de session et fournit des API d'exécution et de récupération modélisées sur les interfaces JDBC
/ ODBC.
Compiler - Le composant qui analyse la requête, effectue une analyse sémantique sur les
différents blocs de requêtes et les expressions de requête et génère éventuellement un plan
d'exécution à l'aide de la table et des métadonnées de partition recherchées à partir de la
métastore.
111
V. Hadoop Query Languages
Hive
Metastore - Le composant qui stocke toutes les informations de structure des différentes tables
et partitions dans l'entrepôt, y compris les informations de type colonne et colonne, les
sérialisateurs et les désérialisants nécessaires pour lire et écrire des données et les fichiers
hdfs correspondants où les données sont stockées.
Execution Engine - Le composant qui exécute le plan d'exécution créé par le compilateur. Le
plan est un DAG de stades. Le moteur d'exécution gère les dépendances entre ces différentes
étapes du plan et exécute ces étapes sur les composants du système appropriés.
112
V. Hadoop Query Languages
Hive
Modèles de données:
Tables - Elles sont analogues aux Tables dans les bases de données relationnelles. Les
tables peuvent être filtrées, projetées, jointes et combinées. De plus, toutes les données
d'une table sont stockées dans un répertoire dans hdfs. Hive prend également en charge la
notion de tables externes dans lequel une table peut être créée sur des fichiers ou des
répertoires préxistants dans hdfs en fournissant l'emplacement approprié à DDL de création
de table. Les lignes dans une table sont organisées en colonnes dactylographiées
semblables aux bases de données relationnelles.
113
V. Hadoop Query Languages
Hive
Partitions - Chaque table peut avoir une ou plusieurs clés de partition qui déterminent la
manière dont les données sont stockées, par exemple. une table T avec une colonne de
partition de date ds avait des fichiers avec des données pour une date particulière stockée
dans le répertoire <table location> / ds = <date> dans hdfs. Les partitions permettent au
système de tailler les données à inspecter en fonction des prédicats de requête, par ex. une
requête qui s'intéresse aux lignes de T qui satisfont au prédicat T.ds = '2008-09-01' devrait
seulement regarder les fichiers dans le répertoire <table location> / ds = 2008-09-01 / dans
hdfs.
Buckets - Les données dans chaque partition peuvent à leur tour être divisées en Buckets en
fonction du hash d'une colonne dans table. Chaque seau est stocké en tant que fichier dans
le répertoire de partition.
114
V. Hadoop Query Languages
Hive
-- load data
hive> LOAD DATA INPATH ‘hdfs://node/movie_data' OVERWRITE INTO
TABLE movie_ratings;
Jaql
Facilité d'extensibilité
116
V. Hadoop Query Languages
Jaql, qui emprunte certaines des meilleures fonctionnalités d'autres langages de script, est
conçu pour atteindre les objectifs suivants:
Analyse semi-structurée: avec Jaql, vous pouvez facilement analyser et manipuler des
données semi-structurées à grande échelle, comme les données JSON.
Parallélisme: les requêtes de Jaql qui traitent de grandes quantités de données peuvent tirer
profit des architectures à échelle réduite. Par exemple, Jaql utilise le framework Hadoop
MapReduce pour traiter les données JSON en parallèle.
Extensibilité: vous pouvez facilement étendre les fonctions Jaql ainsi que ses sources de
données pour faciliter la connexion des calculs pour leurs données.
117
V. Hadoop Query Languages
Operator 1
Operator 3
Jaql
En plus des opérateurs de base, Jaql fournit également des fonctions intégrées
Modèles de données:
Types atomiques: boolean, string, long, etc.
Types complexes: tableau, enregistrement
Jaql
Exemple: trouver des employés qui sont responsables ou ont un revenu > 50000
read Data
[
{name: "Jon Doe", income:
Query 40000, mgr: false},
{name: "Vince Wayne",
read(hdfs “employees”)); income: 52500,
mgr: false},
{name: "Jane Dean",
income: 72000,
mgr: true},
{name: "Alex Smith",
income: 35000,
mgr: false}
]
120
V. Hadoop Query Languages
Jaql
read filter
Query Data
read(hdfs(“employees”)) [
-> filter $.mgr or $.income > 50000; {name: "Vince Wayne",
121
V. Hadoop Query Languages
Jaql
Query Data
read(hdfs(“employees”)) [
-> filter $.mgr or $.income > 50000 {name: "Vince Wayne",
-> transform { $.name, $.income }; income: 52500},
{name: "Jane Dean",
income: 72000}
]
122
V. Hadoop Query Languages
Jaql
Query Data
read(hdfs(“employees”)) [
-> filter $.mgr or $.income > 50000 {name: "Vince Wayne",
-> transform { $.name, $.income } income: 52500},
-> write(hdfs(“output”)); {name: "Jane Dean",
income: 72000}
]
123
V. Hadoop Query Languages
Client Applications
JAQL
HIVE
HADOOP HBase
MAP / REDUCE
HADOOP
HDFS
124
VI. BASES DE DONNÉES NOSQL
125
VI. Bases de Données NoSql
NO Sql
126
VI. Bases de Données NoSql
NoSQL signifie "Not Only SQL" et se réfère à une nouvelle classe de technologies de base de
données créée pour résoudre des problèmes au niveau de BigData
Les technologies NoSQL ne remplaceront pas les SGBDRs !
NoSQL :
Pas de schéma / No Schema
RW (read write)
Temps réel (en direct) / Real Time (live)
Apparues dans les entreprises du web (Google, Yahoo , Amazon, Facebook. . . )
Pas de règles ACID (Atomicité – Consistance – Intégrité – Durabilité)
127
VI. Bases de Données NoSql
Zettabytes
Pourquoi NoSQL?
Modèles
4 grands modèles :
Modèle clé-valeur
Modèle Colonnes
Modèle Document
Modèle Graphe
129
VI. Bases de Données NoSql
Modèle clé-valeur
131
VI. Bases de Données NoSql
132
VI. Bases de Données NoSql
Open Source de
BigTable de Google
De Amazon
utilisé pour l’indexation
des pages Web, Fondation Apache qui
Google Earth, Google respecte l’architecture
analytics distribuée de Dynamo
d’Amazon, projet né de
chez Facebook
133
VI. Bases de Données NoSql
Modèle Document
Document
Collection de « documents » champ 1 valeur
champ 2 valeur
Modèle « clé/valeur », la valeur est un champ 3 valeur
134
VI. Bases de Données NoSql
135
VI. Bases de Données NoSql
Modèle Graphe
137
VII.HBASE
138
VII.HBase
Aperçu
NoSQL
Modèle de données
Architecture
139
VII.HBase
140
VII.HBase
Pourquoi HBase?
Très évolutif
Partitionnement automatique (sharding)
Prise en charge automatique de nouveaux nœuds
Faible latence
Supporte la lecture / écriture aléatoire, balayage à petite échelle
Très disponible
Forte cohérence
Très bon pour "données éparses" (pas de colonnes fixes)
141
VII.HBase
Modèle de données
Les données sont stockées dans la (les) table (s) HBase
Les tables sont constituées de lignes et de colonnes “...a sparse, distributed,
Toutes les colonnes de HBase appartiennent à une famille de persistent, multi-
colonnes particulière dimensional sorted map.
Le schéma de table définit uniquement les familles de colonnes The map is indexed by a
Peut avoir un grand nombre variable de colonnes par rangée row key, column key, and a
(touche de ligne, clé de colonne, horodatage) == valeur timestamp; each value in
Un tuple {row, column, version} spécifie exactement une cellule the map is an uninterrupted
Chaque valeur de cellule a une version array of bytes”
Timestamp – Google Bigtable paper
Ligne rangée dans l'ordre par des clés de rangée
142
Les clés de ligne sont des tableaux d'octets; trié lexicographiquement
VII.HBase
cela peut entraîner une confusion Remarque: Column Families contient des colonnes avec
des versions horodatées. Les colonnes n'existent que
http://fr.wikipedia.org/wiki/Associative_array
lorsqu'elles sont insérées
"En informatique, un tableau associatif, une carte ou
un dictionnaire est un type de données abstraites Column A Column B
Row A
composé d'une collection de paires (clé, valeur), de Integer Value
multidimensionnelle Row C
Family 1 Family 2
143
VII.HBase
Table HBTABLE
– Contient des familles de colonnes
Row key Value
Column family 11111 cf_data:
– Groupement logique et physique de {‘cq_name’: ‘name1’,
colonnes ‘cq_val’: 1111}
cf_info:
Column {‘cq_desc’: ‘desc11111’}
– Existe uniquement lorsqu'il est inséré
– Peut avoir plusieurs versions 22222 cf_data:
– Chaque ligne peut avoir différents {‘cq_name’: ‘name2’,
ensembles de colonnes ‘cq_val’: 2013 @ ts = 2013,
– Chaque colonne identifiée par sa clé ‘cq_val’: 2012 @ ts = 2012
}
Row key
– Clé principale implicite
– Utilisé pour le stockage des lignes HFileHFile HFile
commandées 11111 cf_data cq_name name1 @ ts1 11111 cf_info cq_desc desc11111 @ ts1
11111 cf_data cq_val 1111 @ ts1
– Requêtes efficaces à l'aide de la 22222 cf_data cq_name name2 @ ts1
22222 cf_data cq_val 2013 @ ts1
touche de ligne 22222 cf_data cq_val 2012 @ ts2 144
VII.HBase
Column Family
145
VII.HBase
HBase SGBDR
Une carte multidimensionnelle
Disposition des données dispersée, dispersée et Orientée ligne ou colonne
persistante
ACID supportées sur une seule
Transactions ligne seulement
Oui
Taille maximale de la
PBs TBs
base de données 146
VII.HBase
Exemple
Table :
147
VII.HBase
Bon pour "données éparses" car la colonne inexistante est simplement ignorée
- pas de nulls
148
VII.HBase
Key
149
Key/Value Row Column Family Column Qualifier Timestamp Value
VII.HBase
ZooKeeper est
Architecture de cluster HBase ZooKeeper Quorum utilisé pour la
coordination /
Le client trouve
ZooKeeper Peer surveillance Master
les adresses
Client de serveur de
région dans ZooKeeper Peer …
ZooKeeper Hbase master
Le client lit et … assigne les régions
écrit la ligne en
accédant au et l'équilibrage de
serveur de charge
région
152
VII.HBase
Region / Région
Un sous-ensemble de tables
Remis automatiquement lorsqu'il est trop grand
Region Server / Serveur de région
Héberge les tables, effectue les lectures/écritures
Les clients s'adressent directement à eux pour lire / écrire
Zookeeper
Produit open source Apache et partie de l'écosystème Hadoop
Composant critique pour HBase
Assure qu'un seul Master Server est en cours d'exécution
Registre les serveurs de la région
Gère les échecs de région et de serveur maître
Partie intégrante de l'architecture tolérante aux fautes de HBase 153
VII.HBase
Master
Responsable de la coordination du serveur de la région
Détecte l'état des serveurs de région, effectue l'équilibrage de charge du serveur de région
Affecte les régions aux serveurs de région
Plusieurs maîtres serveurs pris en charge
Plusieurs serveurs maîtres ne coopèrent pas, mais il existe un serveur principal et un ou
plusieurs serveurs de sauvegarde
Le serveur maître gère les opérations du cluster
Affecte des régions aux serveurs de région, gère l'équilibrage de charge et partage les
régions
Ne fait pas partie du chemin de lecture / écriture
Hautement disponible avec ZooKeeper et serveur (s) de sauvegarde supplémentaire
154
VII.HBase
ZooKeeper
155
VII.HBase
Master
Services de base:
LoadBalancer (déplacer les régions pour équilibrer la charge du cluster)
CatalogJanitor (vérifier et nettoyer la table .META.)
LogCleaner (efface les HLogs dans le répertoire des anciens logs)
156
VII.HBase
Backup Masters
Quand un Master démarre, il court avec d'autres Masters pour écrire son adresse dans
ZooKeeper. S'il réussit, c'est le Master principal / actif.
Un Master de sauvegarde attend jusqu'à ce qu'il meurt pour essayer de devenir le prochain
Master actif
On peut configurer deux ou plusieurs maîtres
157
VII.HBase
158
VII.HBase
160
VIII.Text Analytics
Les médias sociaux sont nombreux avec des discussions sur les produits et services
Les informations internes de l'entreprise sont verrouillées dans des blobs, des champs
de description et parfois même supprimées
Comment obtenez-vous la compréhension basée sur les métriques des faits à partir de
texte non structuré?
161
VIII.Text Analytics
Les applications d'analyse des sentiments analysent les flux provenant des données des médias
sociaux tels que les blogs, Twitter et Facebook, et aident les entreprises à mieux comprendre
comment les clients perçoivent leur marque et leurs produits et ce que font leurs concurrents
Ceci est obtenu en extrayant des mots des messages postés dans les médias sociaux qui se
163
VIII.Text Analytics
Text Analytics: Cas d'utilisation: Analyse des sentiments à l'aide Text Analytics
Obtenir des avis de divers blogs, des sites d'examen sur les films
Mettre en évidence les meilleures et les pires parties du film
Proposer un film qui répond à vos attentes!
Défis:
165
VIII.Text Analytics
166
VIII.Text Analytics
Text Analytics: Cas d'utilisation: Analyse des sentiments à l'aide Text Analytics
Supposons que les pages HTML des critiques de deux célèbres films de Bollywood Swades
et Ra.One (alias "Random Access One") ont été obtenues à partir du Web et stockées sous
L'entrée de notre système d'analyse de texte est une collection de fragments extraits des
pages récoltées, comme indiqué dans cette diapositive. Chacun des extraits contient des
commentaires d'évaluation postés par divers examinateurs. Ces extraits contiennent des
167
VIII.Text Analytics
Text Analytics: Cas d'utilisation: Analyse des sentiments à l'aide Text Analytics
Extraction de l'information
Richard Stallman, founder of Par exemple: étant donné un article comme celui affiché ici, un moteur d'extraction de
texte est capable d'identifier des entités telles que des noms de personnes, des
the Free Software Foundation,
organisations, leur titre, etc.
countered saying… 170
VIII.Text Analytics
<Person> <Phone>
0-30 chars
create view PersonPhone as
select P.name as person, PN.number as phone
from Person P, Phone PN
where
Follows(P.name, PN.number, 0, 30);
171
VIII.Text Analytics
Document
Exemple : LABEL TEXT
37 Maria’s phone number is 555-
123-5555, but Mark has 555-
222-4444. Karl has no phone.
Person
Phone
NAME
NUMBER
Maria
555-123-5555
Mark
555-222-4444
Karl
NAME NUMBER
Maria 555-123-5555
Mark 555-222-4444
172
PersonPhone
VIII.Text Analytics
Exemple AQL
Identifier et extraire des informations structurées à partir de texte non structuré et semi-
structuré
Sqoop
Outil pour importer facilement des informations à partir de bases de données structurées (Db2,
MySQL, Netezza, Oracle, etc.) et des systèmes Hadoop associés (tels que Hive et HBase) dans
Peut également être utilisé pour extraire des données de Hadoop et les exporter vers des bases
Aide à décharger certaines tâches telles que ETL de Enterprise Data Warehouse à Hadoop pour
175
IX. Workflow Tools
Flume
Apache Flume est un service distribué, fiable et disponible pour collecter, agréger et déplacer
Flume vous aide à regrouper les données de nombreuses sources, à manipuler les données,
176
IX. Workflow Tools
Kafka
Utilisé pour créer des pipelines de données en temps réel et des applications de streaming
Souvent utilisé à la place des courtiers de messages traditionnels comme JMS et AMQP en
Apache Storm
Apache HBase
Hive
Pig
Hbase
Accumulo
Phoenix
Storm
Solr
Spark
Druid
178
X. Data access Tools
Accumulo
Apache Accumulo est un magasin de clé/valeur trié et distribué qui fournit un stockage et une
Caractéristiques:
Conçu à l'échelle
Stable 179
X. Data access Tools
Phoenix
Apache Phoenix permet l’OLTP et l'analyse opérationnelle dans Hadoop pour les applications à faible
La puissance des API SQL et JDBC standard avec des capacités de transaction ACID complètes.
La flexibilité des capacités de schéma à lecture tardive du monde NoSQL en utilisant HBase
Entièrement intégré avec d'autres produits Hadoop tels que Spark, Hive, Pig, Flume et MapReduce
180
X. Data access Tools
Storm
Apache Storm est un système de calcul en temps réel distribué open source.
Rapide
évolutif
Utile lorsque les millisecondes de latence sont importantes et que Spark n'est pas assez rapide
A été comparé à plus d'un million de tuples traités par seconde par nœud
181
X. Data access Tools
Solr
Apache Solr est une plate-forme de recherche d'entreprise rapide et open source basée sur la
Les API HTTP / XML et JSON de type REST facilitent l'utilisation avec une variété de langages de
programmation
Hautement fiable, évolutif et tolérant aux pannes, offrant une indexation distribuée, une réplication et
des requêtes à charge équilibrée, un basculement et une récupération automatisés, une configuration
Druid
Apache Druid est un magasin de données distribué hautes performances, orienté colonnes.
évolutif horizontalement
Ranger
Framework de sécurité centralisé pour activer, surveiller et gérer une sécurité complète des données
Gérer un contrôle d'accès précis sur les composants d'accès aux données Hadoop comme Apache
L'utilisation de la console Ranger permet de gérer facilement les politiques d'accès aux fichiers,
Les politiques peuvent être définies pour des utilisateurs individuels ou des groupes
Knox
Point d'accès unique pour toutes les interactions REST avec les clusters Apache Hadoop
Simplifie la sécurité Hadoop pour les utilisateurs qui accèdent aux données du cluster et
185
XI. Security Tools
Atlas
gouvernance fondamentale
Hadoop
Hadoop
186