Big Data 2020

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 186

Enseignant : Mohamed MANAA

IBM Big Data Trainer


«Big Data Specialist» Certified

Année Universitaire : 2017-2018


Plan

I. Concepts de base du Big Data VII. Hbase

II. Architecture de la plateforme Big Data VIII.Hive

III. Architecture Hadoop IX. Big SQL

IV. Système HDFS X. JAQL

V. Paradigmes de Traitement parallèle «MapReduce» XI. Système Analytique «AQL»

VI. Hadoop Query Languages XII. BigSheets

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

90% 80% 20%


des données ont des données des données
été créées au actuelles ne sont disponibles peuvent
cours des sept pas structurés être traitées par des
dernières années systèmes
traditionnels

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

Caractéristiques du Big Data V4 = Volume Velocity Variety Veracity

Coûts de traitement Répondre à la Vitesse Analyser collectivement


efficace du Volume croissante Velocity l'élargissement de la
croissant Variété Variety
50x 30 Billion
35 ZB Capteurs 80% des
RFID et données
comptage mondiales ne
sont pas
structurés
2010 2020

É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

Exploration du Big Data Vue 360 ​° améliorée du client Extension de sécurité /


Trouver, visualiser, comprendre Étendre les vues des clients existantes intelligence
toutes les grandes données pour en intégrant des sources de données Risque plus faible, détection de la
améliorer la prise de décision internes et externes supplémentaires fraude et suivi de la cybersécurité en
temps réel

Analyse d'opérations Augmentation du stockage de données


Analyser une variété de données machine Intégrez big data et data warehouse pour 9
pour améliorer les résultats commerciaux accroître l'efficacité opérationnelle
I. Concepts de base du Big Data

Plus de façons & Des analyses et des techniques très variées

Text Analysis
Spatial Analysis Statistics Image Analysis

Temporal Analysis Machine Learning Video Analysis Audio Analysis

10
I. Concepts de base du Big Data

Big Data et complexité dans la santé

Les informations médicales


doublent tous les 5 ans,
dont une grande partie n'est
pas structurée

81% des médecins


signalent des dépenses de
5 heures par mois en
consultant des revues
médicales

“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

Data en pratique BI &


Reporting

Enterprise
Warehouse
Connectors

Predictive
Analytics
Hadoop

MapReduce Hive/HBase Data Marts


Col Stores
Visualization
& Discovery

Documents
in variety of formats ETL, MDM, Data Governance

Landing and Analytics Sandbox Zone Metadata and Governance Zone 13


I. Concepts de base du Big Data

Comprendre et naviguer dans Federated Discovery


Manifeste de les sources Big Data fédérées and Navigation
Big Data (What not How/Patterns/Expert Systems, +++)
Gérer et stocker un énorme Hadoop File System
volume de données MapReduce
CONSOMMABLE

Structure et contrôle de Data Warehousing


données

Gérer les données en Stream Computing


streaming
MDM : Master
Data Managment
Analyser les données non Text Analytics Engine
structurées ILM : Information
Lifecycle
Managment
Intégrer et gérer toutes Integration, Data Quality,
les sources de données Security, ILM, MDM 14
I. Concepts de base du Big Data

Exemple d’utilisation de la plate-forme Big Data (1)

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

 Pourquoi? Quand? Où?


 Hadoop Basics
 Comparaison avec le SGBDR
 Hadoop architecture
 MapReduce
 HDFS
 Hadoop Common
 Ecosystème de projets connexes
 Pig, Hive, Jaql
 Autres projets
 Distributions Hadoop
19
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

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 ...

Combien de temps faudra-t-il pour lire 1 To de données?


1TB (à 80Mb / sec):
1 disque - 3,4 heures
10 disques - 20 min
100 disques - 2 min
1000 disques - 12 sec

22
II. Architecture Hadoop

Le traitement de données en parallèle est la réponse!

 C'était avec nous pendant un certain temps:


 GRID Computing - charge de traitement qui se propage
 Bases de données parallèles - DB2 DPF, Teradata, Netezza, etc. (distribuer les
données)

 Informatique distribuée: plusieurs ordinateurs apparaissent comme un superordinateur,


communiquent entre eux par passage de messages, fonctionnent ensemble pour atteindre
un objectif commun

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

 Nouvelle façon de stocker et de traiter les données:


 Laissez le système gérer la plupart des problèmes automatiquement:
• Les échecs
• Évolutivité
• Réduire les communications
• Distribuer les données et le pouvoir de traitement à l'endroit où les données sont
• Faire en sorte que le parallélisme fasse partie du système d'exploitation
• Matériel relativement peu coûteux

 Apportez le traitement aux données!

26
II. Architecture Hadoop

Les principes de conception de Hadoop

 Hadoop = HDFS + MapReduce infrastructure

 Optimisé pour gérer


 Des quantités massives de données par un parallélisme
 Une variété de données (structuré, non structuré, semi-structuré)
 Utilisation d'un matériel de commodité peu coûteux

 Fiabilité fournie par réplication

27
II. Architecture Hadoop

Hadoop n'est pas pour tous les types de travail

 Ne traite pas les transactions - Transaction processing (accès aléatoire)

 Pas bon lorsque le travail ne peut pas être parallélisé

 Pas bon pour l'accès aux données à faible latence

 Pas bon pour traiter beaucoup de petits fichiers

 Pas bon pour les calculs intensifs avec peu de données

28
II. Architecture Hadoop

Qui utilise Hadoop?

29
II. Architecture Hadoop

Un peu d’histoire

30
II. Architecture Hadoop

Projets Open Source de Hadoop

Hadoop est complété par un écosystème de projets open source

Jaql

Oozie
31
II. Architecture Hadoop

Qu'est ce que Apache Hadoop?

 Prise en charge flexible de gros volumes de données


 Inspiré par les technologies Google (MapReduce, GFS, BigTable, ...)
 Initié à Yahoo
 À l'origine conçu pour résoudre les problèmes d'évolutivité de Nutch, une technologie de
recherche Web open source
 Bien adapté aux applications à lecture intensive
 Prend en charge une grande variété de données

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)

 Hadoop Distributed File System = HDFS


 Système de fichiers distribués Hadoop
 Où Hadoop stocke les données
 Un système de fichiers qui couvre tous les nœuds dans un cluster Hadoop
 Il regroupe les systèmes de fichiers sur de nombreux nœuds locaux pour les
transformer en un grand système de fichiers

34
II. Architecture Hadoop

Quel est le Hadoop Distributed File System?

 HDFS stocke des données sur plusieurs nœuds

 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

 Les données sont stockées sur l'ensemble du cluster


 Les programmes sont transmis aux données et non aux données du programme
 Les données sont stockées sur l'ensemble du cluster (le DFS)

 L'ensemble du cluster participe au 10110100 Cluster


10100100
1
11100111
système de fichiers 11100101
1 3
00111010 2
01010010
 Les blocs d'un seul fichier sont 11001001
2 4 3
01010011 1
Blocks 00010100
répartis sur le cluster 10111010
11101011
3
11011011
2 4
 Un bloc donné est généralement 01010110
10010101 4 2
00101010
1 3
10101110
répliqué pour la résilience 4
01001101
01110100

Logical File
36
II. Architecture Hadoop

Hadoop Common

 Anciennement connu sous le nom Hadoop Core


 Contient des utilitaires et des bibliothèques qui soutiennent les autres sous projets de Hadoop
 Système de fichiers
 Appel de procédure à distance (RPC)
 Sérialisation
 Par exemple : shell du système de fichiers
 Pour interagir directement avec les fichiers HDFS, vous devez utiliser
/bin/hdfs dfs <args>

hadoop fs –dus –h /user/hadoop/file1 hdfs://node/dir1

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

Hadoop Distributed File System (HDFS)

 Distribué, évolutif, tolérant aux pannes, débit élevé


 Accès aux données via MapReduce
 Fichiers divisés en blocs
 3 répliques pour chaque donnée par défaut
 Peut créer, supprimer, copier, mais PAS mettre à jour
 Conçu pour la lecture en continu, pas un accès aléatoire
 Localité des données: traitement des données sur ou près du stockage physique pour
réduire la transmission des données

43
III. Système HDFS

Architecture de HDFS : NameNode File1


a
b
 Architecture maître / esclave (Master / Slave architecture) c
d
 Master: NameNode
 gère l'espace de noms et les métadonnées du système de fichiers
FsImage
EditLog
 régule l'accès client aux fichiers
 Slave: DataNode
 beaucoup par Cluster
a b a c
 gère le stockage attaché aux nœuds b a d b
d c c d
 rapporte périodiquement l'état à NameNode
DataNodes 44
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

 Les blocs de données sont reproduits sur plusieurs nœuds


 Le comportement est contrôlé par le facteur de réplication (replication factor), configurable par fichier
 La valeur par défaut est de 3 répliques

 une réplique sur un nœud dans le rack local


 une autre réplique sur un nœud dans un rack
différent
 et le dernier sur un nœud différent dans le
deuxième rack

Cela réduit la bande passante du réseau inter-


rack, ce qui améliore les performances d'écriture
46
III. Système HDFS

HDFS – Définition de la topologie en rack

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

1. Lecture Fsimage 3.Envoi du Block


information à
datadir
namenode block1
NameNode block2
datanode1 …

2. Lire et appliquer
Editlog
datanode2
datadir
namedir block1
editlog block2

fsimage … 48
III. Système HDFS

HDFS – Ajout de fichier

 Le fichier est ajouté à NameNode et écrite dans editlog


 Les données sont écrites en blocs vers les datanodes
 Datanode commence la copie en chaîne dans deux autres datanodes
 Si au moins une écriture pour chaque bloc réussit, l'écriture est réussie
datadir
block1
NameNode block2
datanode1 …

datanode2
datadir
namedir block1
editlog block2

fsimage …
49
III. Système HDFS

HDFS – Gérer le cluster

 Ajouter un nœud de données (DataNode)


 Démarrez un nouveau DataNode (pointant vers NameNode)
 Si nécessaire, exécutez l'équilibreur (hadoop balancer) pour rééquilibrer les blocs

 Supprimer le noeud
 Supprimez simplement DataNode
 Mieux: Ajouter un noeud et attendre que tous les blocs aient été déplacés

 Vérification de la santé du système de fichiers


 Utilisez hadoop fsck
50
III. Système HDFS

fs – file system shell

• File System Shell (fs)


• Appelé comme suit :

hadoop fs <args>

• Exemple:
• Liste le contenu du répertoire actuel dans hdfs

hadoop fs –ls .

51
III. Système HDFS

fs – file system shell

Les commandes de shell FS prennent des URI comme


argument
scheme://authority/path
• Scheme:
• Pour le filesystem local, le scheme est file
• Pour HDFS, le scheme est hdfs
• Authority est le nom d'hôte et le port du NomNode

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

fs – file system shell

 De nombreuses commandes POSIX

• cat, chgrp, chmod, chown, cp, du, ls, mkdir, mv, rm, stat, tail

• Quelques commandes spécifiques à HDFS

• copyFromLocal, put, copyToLocal, get, getmerge, setrep

53
III. Système HDFS

HDFS – FS shell commands

• copyFromLocal / put
• Copie les fichiers du système de fichiers local dans fs

hadoop fs -copyFromLocal <localsrc> .. <dst>


Ou

hadoop fs -put <localsrc> .. <dst>

54
III. Système HDFS

HDFS – FS shell commands

• copyToLocal / get
• Copier des fichiers de fs dans le système de fichiers local

hadoop fs -copyToLocal <src> <localdst>

Ou

hadoop fs -get <src> <localdst>

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

 Modèle de calcul Hadoop


 Données stockées dans un système de fichiers distribué couvrant de nombreux
ordinateurs peu coûteux
 Apporter la fonction aux données
 Distribuer l'application aux ressources de calcul où les données sont stockées

 Adaptable à des milliers de nœuds et petabytes de données

59
IV. MapReduce

Introduction à MapReduce

public static class TokenizerMapper Hadoop Data Nodes


extends Mapper<Object,Text,Text,IntWritable> {
private final static IntWritable
one = new IntWritable(1);
private Text word = new Text();
public void map(Object key, Text val, Context
StringTokenizer itr =
new StringTokenizer(val.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());

}
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)

Result Set Retourner un seul


ensemble de résultats

60
IV. MapReduce

Introduction à MapReduce

Il y a deux aspects de Hadoop qui sont importants à comprendre:


1. MapReduce est un framework logiciel introduit par Google pour prendre en charge l'informatique
distribuée sur de grands ensembles de données de clusters d'ordinateurs.
2. Le système de fichiers distribués Hadoop (HDFS) est l'endroit où Hadoop stocke ses données.
Ce système de fichiers s'étend sur tous les nœuds d'un cluster. Effectivement, HDFS relie les
données qui résident sur de nombreux noeuds locaux, ce qui fait que les données font partie
d'un grand système de fichiers. En outre, HDFS suppose que les noeuds échoueront, de sorte
qu'il réplique un nombre de données donné sur plusieurs nœuds pour obtenir la fiabilité. Le
degré de réplication peut être personnalisé par l'administrateur ou le programmeur Hadoop.
Toutefois, par défaut, il faut reproduire chaque morceau de données sur 3 noeuds: 2 sur le
même rack et 1 sur un rack différent. 61
IV. MapReduce

Introduction à MapReduce

 La clé de la compréhension de Hadoop réside dans le modèle de programmation MapReduce.

 Il s'agit essentiellement d'une représentation du modèle de traitement de division et de


conquête, où votre entrée est divisée en plusieurs petites pièces (l'étape de MAP) et les noeuds
Hadoop traitent ces pièces en parallèle.

 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 maître / esclave


 Le maître (JobTracker) unique contrôle l'exécution du travail sur plusieurs esclaves (TaskTrackers).
 JobTracker
 Accepte les emplois MapReduce soumis par les clients
 Pousse la carte (MAP) et réduit les tâches dans les nœuds TaskTracker
 Maintient le travail physiquement proche des données
 Surveille les tâches et le statut de TaskTracker
 TaskTracker
 Exécute la carte (MAP) et réduit les tâches
 Envoi son statut à JobTracker
 Gère le stockage et la transmission de la sortie intermédiaire 63
IV. MapReduce

Architecture de MapReduce

cluster Computer 1

JobTracker

TaskTracker TaskTracker TaskTracker TaskTracker


Computer 2 Computer 3 Computer 4 Computer 5

 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

Le modèle de programmation 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

Les résultats peuvent


être écrits sur HDFS
ou dans une base de
données

Distributed
FileSystem HDFS, 66
Map Shuffle Reduce
données en blocs
IV. MapReduce

Tâches MapReduce :

 Map

 Shuffle

 Reduce

 Combiner

67
IV. MapReduce

MapReduce – Phase Map

 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

MapReduce – Phase Map

 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

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 69
logique
IV. MapReduce

MapReduce – Phase Map

 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

Exemple : Word Count

 Dans cet exemple, nous avons une liste de noms d'animaux


 MapReduce peut diviser automatiquement les fichiers sur les sauts de ligne
 Notre fichier a été divisé en deux blocs sur deux nœuds
 Nous voulons compter à quelle fréquence chaque gros chat est mentionné. Dans SQL, ce
serait: Node 1 Node 2

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

<Tiger, 1> <Panther, <1,1>>


<Lion, 1> <Tiger, <1,1,1>>
<Lion, 1> …
<Panther, 1>

Node 2 Node 3

<Tiger, 1> <Lion, <1,1>>


<Tiger,1> La tâche aléatoire distribue les …
<Panther, 1> clés à l'aide du partitionneur. Les
… résultats sont stockés dans des
blocs HDFS sur les machines qui
exécutent les tâches Reduce 74
IV. MapReduce

Persistance des données à la phaseShuffle

 Les données sont conservées dans DFS en phase Shuffle


 Permet aux tâches Map et Reduce de redémarrer
 Les sorties multiples de Map doivent être fusionnées en une seule entrée de Reduce
 La fusion se fait en mémoire
 Persiste régulièrement dans DFS
 Le tri de la mémoire pour la fusion peut être configurée
 Utilisation d'une opération de tri des différents fichiers d'entrée

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>
… …

Réduire les tâches agréger toutes


les valeurs d'une clé spécifique. 76
IV. MapReduce

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

 Les fichiers dans MapReduce sont stockés dans des blocs


 MapReduce divise les données en fragments ou en Splits
 Une tâche de Map est exécutée sur chaque Split
 La plupart des fichiers ont des enregistrements avec des points de fin d’enregistrement
définis
 Le caractère le plus commun est le caractère de fin de ligne
 La classe InputSplitter est responsable de prendre un fichier HDFS et de le transformer en
Splits
 L'objectif est de traiter autant de données que possible localement

78
IV. MapReduce

Classes

Il existe trois classes principales de lecture de données dans MapReduce:

 InputSplitter, divise un fichier en splits


 RecordReader, lit les fichiers et le divise en enregistrements
 par exemple un enregistrement par ligne (LineRecordReader)
 InputFormat, prend chaque enregistrement et le transforme en une paire <key, value> qui
est ensuite transmis à la tâche Map
 Ensemble de classes supplémentaires pour la compression, etc.

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

Client: soumet des emplois MapReduce Child

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

TaskTracker 2 TaskTracker fails

child JVM

Child

1 Task fails
MapTask
or
ReduceTask

TaskTracker node 82
IV. MapReduce

Tolérance aux pannes

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

Tolérance aux pannes

TaskTracker Failure
 JobTracker ne reçoit aucun battement de coeur
 Supprime TaskTracker du pool de TaskTrackers pour planifier les tâches.

84
IV. MapReduce

Tolérance aux pannes

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

jobtracker.taskScheduler Planificateur utilisé par JobTracker.

tasktracker.map.tasks.maximum Nombre maximum de tâches Map / Reduce Tasks par task


tasktracker.reduce.tasks.maximum tracker. Défini selon la mémoire et les CPU dans le système

child.java.opts Max. mémoire du JVM pour chaque task


map.tasks.speculative.execution
reduce.tasks.speculative.execution Démarre des tâches redondantes

io.sort.mb Paramètres pour fusionner les sorties de la carte dans le


io.sort.factor réducteur 86
IV. MapReduce

Planification /Scheduling – FIFO scheduler (avec priorités)

 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

Planification /Scheduling – FIFO scheduler (avec priorités)

Very Low Normal High Very


Low High

J3

J6 J2

J7 J5 J4 J1

88
IV. MapReduce

Planification /Scheduling – Planificateur équitable

 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

Pool d’emplois pour 89


Utilisateur Mary
IV. MapReduce

Planification /Scheduling – Planificateur équitable

 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

20 tâches 20 tâches 20 tâches

Mary John Peter 90


Demande: 80 Demande: 80 Demande: 120
IV. MapReduce

Planification /Scheduling – Planificateur équitable

 Un partage minimum peut être défini pour un pool


 Dans l'exemple précédent, disons que Mary a une part minimale de 40
 On attribuera à Mary 40, puis le reste est distribué uniformément à d'autres pools

Nombre maximal de tâches pouvant être attribuées dans ce cluster : 60

40 tâches 10 tâches 10 tâches

Mary John Peter


Demande: 80 Demande: 80 Demande: 120
Partage minimum: 40
91
IV. MapReduce

Planification /Scheduling – Planificateur équitable

 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

 Apache SPARK est un paradigme similaire à MAP-REDUCE

 La phase SHUFFLE de SPARK est totalement en mémoire sans aucun accès HDFS

 Apache Spark est nettement plus rapide que MAP-REDUCE !!

 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

Complémentarité SPARK / MapReduce

 MAP REDUCE est destiné pour le traitement par lots

 alors que SPARK est mieux pour un composant en temps réel

 Ils sont complémentaires et généralement utilisés ensemble

94
V. HADOOP QUERY LANGUAGES

95
V. Hadoop Query Languages

 Bases de données vs Hadoop

 Hadoop Query Languages

 Pig

 Hive

 Jaql

 …

96
V. Hadoop Query Languages

 Base de données classique  Big Data (Hadoop)


 Schema on load – Schema on run

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

Bases de données vs Hadoop

 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

Type de données Enregistrements, lobjets, XML Fichiers

Mises à jour des données Mises à jour autorisées Insère et supprime uniquement

Language SQL & XQuery Pig (Pig Latin), Hive (HiveQL), Jaql

Type de traitement Réponse rapide, accès aléatoire Traîtements en Batch

Sécurité Sécurité et audit Partielle

Compression Compression de données sophistiquée Compression de fichiers simple

Hardware Matériel puissant Matériel de base


Accès aux fichiers uniquement
Accès aux données Accès aléatoire (indexation)
(diffusion)
Historique ~40 ans d'innovation < 5 ans

Communauté Largement utilisé Pas encore largement adopté 99


V. Hadoop Query Languages

Comment analyser les grands ensembles de données avec Hadoop

 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

Pig, Hive, Jaql – Similitudes

 Taille réduite du programme sur Java


 Les applications sont traduites pour
cartographier et réduire les emplois derrière
les scènes
 Points d'extension pour étendre les
fonctionnalités existantes
 Interopérabilité avec d'autres langues
 Non conçu pour les lectures / écritures
aléatoires ou les requêtes à faible latence

101
V. Hadoop Query Languages

Pig, Hive, Jaql – Différences


Caractéristiques Pig Jaql Hive BigSQL

Développé par Yahoo! IBM Facebook IBM

Language Pig Latin Jaql HiveQL Ansi-SQL

Type de
Data flow Data flow SQL SQL
langue
Structures de
JSON, semi Principalement Principalement
données Complexe
structurée structuré structuré
supportées

Schéma Optionnel Optionnel Obligatoire Obligatoire

102
V. Hadoop Query Languages

Pig

 La plate-forme Pig est capable de gérer de nombreux types de données


 Pig Latin est un langage de flux de données
 Deux composantes:
 Language Pig Latin
 Environnement d'exécution
 Deux modes d'exécution:
 Local
pig –x local
• Bon pour tester et prototyper
 Distribué (MapReduce)
• Besoin d'accès à un cluster Hadoop et HDFS pig –x mapreduce

• Mode par défaut


103
V. Hadoop Query Languages

Pig

Trois étapes dans un programme typique Pig:


 LOAD
Charger données à partir de HDFS
 TRANSFORM
Traduit en un ensemble de cartes et réduire les tâches
Opérateurs relationnels : FILTER, FOREACH, GROUP, UNION, etc.
 DUMP ou STORE
Afficher le résultat sur l'écran ou le stocker dans un fichier

104
V. Hadoop Query Languages

Pig

 Types de données de Pig


 Types simples :
• int, long, float, double, chararray, bytearray, boolean

 Types complexes :

 tuple: ensemble de champs (John,18)`

 bag: collection de tuples {(John,18), (Mary, 29)}

 map: ensemble de paires key/value [name#John, phone#1234567]

http://pig.apache.org/docs/r0.10.0/basic.html#Data+Types+and+More 105
V. Hadoop Query Languages

Pig

 Exemple: wordcount.pig

input = LOAD ‘./all_web_pages’ AS (line:chararray);

-- 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;

-- create a group for each word


word_groups = GROUP words BY word;

-- count the entries in each group


word_count = FOREACH word_groups GENERATE COUNT(words) AS count, group;

-- order the records by count


ordered_word_count = ORDER word_count BY count DESC;
STORE ordered_word_count INTO ‘./word_count_result’;

106
V. Hadoop Query Languages

Pig

 Comment exécuter wordcount.pig ?

– Mode local : /bin/pig -x local wordcount.pig

– Mode distribué (MapReduce):

hadoop dfs -copyFromLocal all_web_pages input/all_web_pages


bin/pig -x mapreduce wordcount.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

 Exemple: analyse de notation de film


-- create a table with tab-delimited text file format
hive> CREATE TABLE movie_ratings (
userid INT,
movieid INT,
rating INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;

-- load data
hive> LOAD DATA INPATH ‘hdfs://node/movie_data' OVERWRITE INTO
TABLE movie_ratings;

-- gather ratings per movie


hive> SELECT movieid, rating, COUNT(rating)
FROM movie_ratings
GROUP BY movieid, rating;
115
V. Hadoop Query Languages

Jaql

Conçu pour une manipulation et une analyse faciles


des données semi-structurées, des formats de support tels que
JSON, XML, CSV, fichiers plats, etc

Développé par Flexibilité avec


schéma optionnel

Facilité d'extensibilité
116
V. Hadoop Query Languages

Jaql : A JSON Query Language

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

Jaql : Comment fonctionne une requête Jaql?

 Une requête Jaql peut être considérée comme une pipeline


 Manipulation des données par les opérateurs :
 FILTER, TRANSFORM, GROUP, JOIN, EXPAND, SORT, TOP

Operator 1

Source Operator 2 Sink

Operator 3

lecture de données manipuler des données écriture de données 118


V. Hadoop Query Languages

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

 Où exécuter des requêtes Jaql?


 Shell: jaqlshell
• Mode cluster
• Mode local: pour les tests, prototypage
 Éclipse
 Embarqué en Java 119
V. Hadoop Query Languages

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",

income: 52500, mgr:


false},
{name: "Jane Dean",

income: 72000, mgr:


true}
]

121
V. Hadoop Query Languages

Jaql

read filter transform

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

read filter transform write

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

Not Only Relationnel

NO Sql
126
VI. Bases de Données NoSql

Qu'est-ce que 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?

Une technologie rentable est nécessaire pour gérer de


nouveaux volumes de données Petabytes
Sharding
A

L'augmentation des volumes de données a entraîné une


B
fragmentation des SGBDR ABC

Des modèles de données flexibles sont nécessaires pour Id Fn Ln Addr

prendre en charge les applications BigData 1 Fred Jones Liberty, NY

2 John Smith ??????


128
VI. Bases de Données 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

 Le modèle le plus simple.


 A une clé, on associe une valeur.
 La valeur peut être de n’importe quel type (chaîne de caractères, entier, structure, objet
sérialisé. . .).
 Chaque objet est identifié par une clé unique
 Les données sont représentées par un couple clé-valeur.

Key: User1 Value: Mary

Key: User2 Value: John

Key: User3 Value: Peter


130
VI. Bases de Données NoSql

Modèle clé-valeur : Implémentations les plus connues

développé par Amazon


projet sponsorisé par VMWare

implémentation open source


inspiré de Dynamo développé par Linkedln

131
VI. Bases de Données NoSql

Modèle orienté colonnes

clé Famille de colonnes


 Les données sont stockées par
colonne
colonne 1 colonne 2 colonne 3
clé :
 Ressemble logiquement aux bases de ligne objet objet 1 objet 21 objet 31

données relationnelles (tables) mais le


colonne 2
nombre de colonnes : ligne
clé :
objet objet 2
 est dynamique
 peut varier d’un enregistrement à clé :
colonne 3 colonne 4
ligne objet 3 objet 4
objet
un autre
 Utile pour les données éparses

132
VI. Bases de Données NoSql

Modèle orienté colonnes : Implémentations les plus connues

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

document semi-structuré hiérarchique de type champ 4 valeur



JSON ou XML
clé 1 Document
 Pas de schéma pour les documents mais une champ 1 valeur
clé 2 champ 2 valeur
structure arborescente : une liste de champs,
clé 3
un champ a une valeur qui peut être une liste Document

de champs, ... champ 1 valeur
champ 2 valeur
 Utilisé principalement dans le développement champ 1 valeur
champ 3
de CMS (Content Management System) champ 1 valeur

134
VI. Bases de Données NoSql

Modèle Document : Implémentations les plus connues

Libre et open source Open Source pour la plate-


forme .NET / Windows
Distribué sous licence Apache

135
VI. Bases de Données NoSql

Modèle Graphe

 Modèle de représentation des données basé sur la


Id : 2
théorie des graphes. Nom : Ahmed
Age : 25
 S’appui sur les notions de nœuds, de relations et
de propriétés qui leur sont rattachées.
Id : 1
 Moteur de stockage pour les objets (qui se Nom : Sami
Age : 20

présentent sous la forme d’une base documentaire,


chaque entité de cette base étant un noeud)
 Adapté à la manipulation d’objets complexes Id : 3
Type : Groupe
Name : Jeux
organisés en réseaux : cartographie, réseaux
sociaux,…
136
VI. Bases de Données NoSql

Modèle Graphe : Implémentations les plus connues

open source open source Implémentée en Java


développé en en Java développé en en Java

137
VII.HBASE

138
VII.HBase

 Aperçu

 NoSQL

 Modèle de données

 Architecture

139
VII.HBase

Qu'est-ce que HBase?

 Une application leader sur le marché de Google BigTable Design


 Qu'est-ce qu'un BigTable?
 "Un Bigtable est une carte multidimensionnelle dispersée, répartie et persistante"
http://research.google.com/archive/bigtable-osdi06.pdf
 Un projet open source Apache
 Supporté et pris en charge par IBM
 HBase gère certains des principaux sites sur le Web (par exemple Facebook, Yahoo, ...)
http://wiki.apache.org/hadoop/Hbase/PoweredBy
 Un magasin de données NoSQL

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

Column A Column B Column C


C’est « Map » et non une feuille de calcul
Row A
 La plupart de la littérature décrit HBase comme Row B

un magasin de données orienté colonne, mais Row C

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

sorte que chaque clé possible apparaît au plus une Column B


Long Timestamp1
fois dans la collection".
Row B
Long Timestamp2
Column C
 Techniquement, HBase est une carte triangulaire Huge URL

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

 Unité de stockage de base. Les colonnes de la même famille devraient


avoir des propriétés similaires et des caractéristiques de taille similaire
 Configurable par famille de colonnes
 Plusieurs versions horodatées
“Column keys are grouped into
 c'est-à-dire la 3ème dimension des tableaux
sets called column families, which
 Compression
form the basic unit of access
 (aucun, Gzip, LZO, SNAPPY)
control.” – Google Bigtable paper
 Politiques de conservation des versions
 Time to Live (TTL)
 Une colonne est appelée en utilisant la syntaxe suivante: family:qualifier

145
VII.HBase

Column HBase VS SGBDR traditionnel

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

get/put/scan only sauf si


Query Language combiné avec Hive ou d'autres SQL
technologies

Sécurité Authentication / Authorisation Authentication / Authorisation

Indexes Row-Key seulement Oui

Des millions de requêtes par


Débit seconde
Des milliers de requêtes par sec

Taille maximale de la
PBs TBs
base de données 146
VII.HBase

Exemple

Table :

SSN – Last Name First Account Type of Timestamp


primary Name Number Account
key
01234 Smith John abcd1234 Checking 20120118
01235 Johnson Michael wxyz1234 Checking 20120118
01235 Johnson Michael aabb1234 Checking 20111123
01236 Pruski null null null null

147
VII.HBase

Exemple : La vue logique HBase (« records") ressemble à ...

Row key Value (CF, Column, Version, Cell)


01234 info: {‘lastName’: ‘Smith’,
‘firstName’: ‘John’}
acct: {‘checking’: ‘abcd1234’}
01235 info: {‘lastName’: ‘Johnson’,
‘firstName’: ‘Michael’}
acct: {‘checking’: ‘wxyz1234’@ts=2012,
‘checking’: ‘aabb1234’@ts=2011}
01236 info: {‘lastName’: ‘Pruski’}

 Bon pour "données éparses" car la colonne inexistante est simplement ignorée
- pas de nulls
148
VII.HBase

info Column Family


Exemple : La vue Row Key Column Key Timestamp Cell Value
01234 info:fname 1330843130 John
physique ("cell")
01234 info:lname 1330843130 Smith
ressemble ...
01235 info:fname 1330843345 Michael
01235 info:lname 1330843345 Johnson
01236 info:lname Pruski
acct Column Family
Row Key Column Key Timestamp Cell Value

01234 acct:checking 1330843130 abcd1234


01235 acct:checking 1330843345 wxyz1234
01235 acct:checking 1330843239 aabb1234

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

Region Server Region Server


Coprocessor Coprocessor … Coprocessor Coprocessor … …
… …
Region Region … Region Region …

HFile HFile HFile HFile

HFile HDFS / GPFS


HFile HFile
HFile
150
VII.HBase

Architecture de cluster HBase

 les serveurs de région gèrent un ensemble de régions.


 Une table HBase est constituée d'un ensemble de régions.
 Les régions sont l'unité de travail de base de HBase. C'est ce qui est utilisé comme une
division par map reduce.
 Bien que HBase ne soit pas principalement destiné à être utilisé pour réduire la carte à grande
échelle, il pourrait y avoir quelques requêtes qui en auront besoin. Dans cet esprit, il est
important d'obtenir une répartition uniforme des données entre les régions. Cela assurera le
meilleur parallélisme dans les tâches de la carte.
 Hfiles sont la représentation physique des données dans HBase. Comme vous pouvez le voir,
les clients ne lisent pas HFiles directement mais utilisent les serveurs de la région pour accéder
aux données. 151
VII.HBase

Architecture HBase simplifiée

HBase Ce graphique est tiré du livre «HBase The


Definitive Guide» d'O'Reilly et fait une excellente

Region Server(s) illustration de l'architecture de haut niveau et les


composants de HBase.
Master Region(s) Notez que HBase dépend de ZooKeeper et
HDFS de l'écosystème Apache Hadoop.
Il peut exploiter map / reduce pour certaines
fonctions (par exemple ingest) mais ne dépend
pas de M / R.
ZooKeeper HDFS

152
VII.HBase

Définitions et rôles des composants 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

Définitions et rôles des composants 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

 Zookeeper fournit un service de coordination

 Le client trouve le serveur de région via ZK

 Le client écrit / lit directement sur le serveur de région

 Master affecte les régions et l'équilibrage de charge

 Les serveurs de la région envoient des battements de cœur au ZK

 Master surveille ZK pour les serveurs régionaux qui ont échoués

155
VII.HBase

Master

 Surveiller toutes les instances de serveur de région dans le cluster


 Initialiser le basculement du serveur de région
 Effectuer tous les changements de métadonnées (par exemple, créer une table)
 Gérer l'affectation de région

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.

 S'il échoue, il y a un autre Master actif et il devient un Master de sauvegarde

 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

Quand ne devriez-vous pas utiliser HBase?

 HBase n'est pas adapté à tous les problèmes


 Avez-vous suffisamment de données pour justifier l'utilisation de HBase?
 Des centaines de millions ou des milliards de lignes => HBase
 Quelques milliers / millions de lignes => RDBMS traditionnel
 Avez-vous besoin des fonctionnalités supplémentaires fournies par un SGBDR?
 par exemple, des colonnes typées, des index secondaires, des transactions, des langages
de requête avancés, etc.
 Avez-vous assez de matériel?
 HBase ne fonctionne pas bien avec moins de 5 DataNodes en raison de la réplication de bloc
HDFS qui a une valeur par défaut de 3, plus un NameNode.

158
VII.HBase

Quand utiliser HBase?

 De grandes quantités de données (* pensez Petabytes *)


 Besoin d'un accès aléatoire efficace à l'intérieur de grands ensembles de données
 Rappelez-vous: Hadoop est conçu pour stocker et diffuser des ensembles de données
extrêmement volumineux.
• Non destiné à l'interrogation en temps réel
• Ne prend pas en charge l'accès aléatoire
• Ne gère pas des milliards de petits fichiers
 Besoin d'échelle gracieusement
 Modèle d'accès simple et fixe
 Lorsque le modèle de données ou le schéma est parcimonieux (par opposition à fixe)
159
VIII.TEXT ANALYTICS

160
VIII.Text Analytics

Text Analytics: obtenir des informations mesurables

 La plupart des données du monde sont en texte non structuré ou semi-structuré

 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

Sentiment/Social Media Analytics

Comment les Mes partenaires


consommateurs se commerciaux aident-
sentent-ils à propos ils ou nuisent-ils ma
de notre nouveau réputation?
message / publicité?

Qu'est-ce que les


Que fait mon consommateurs
concurrent pour entendent parler de
exciter le marché? notre marque?

Y a-t-il un bavardage négatif


auquel mon équipe de relations
publiques devrait répondre? 162
VIII.Text Analytics

Text Analytics: obtenir des informations mesurables

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

pour stimuler le marché.

Ceci est obtenu en extrayant des mots des messages postés dans les médias sociaux qui se

réfèrent à des sentiments positifs ou négatifs sur un sujet d'intérêt particulier.

163
VIII.Text Analytics

Que disent les clients à propos


Text Analytics: Cas d'utilisation de mes produits?
Ma campagne marketing est-elle
 Most of the world’s data is in réussie?
unstructured or semi-structured text
Pourquoi mon serveur échoue-t-
il?

–Analyse des médias sociaux


hat are consumers
Pourquoi les clients quittent-ils
–Analyse du journal (Log) machine hearing about our
l'entreprise?
brand?

–Call Center Logs


Quels emails sont liés à la
finance?
–Email Analysis

–Services financiers Acheter / vendre


automatiquement des
actions basées sur des
–… nouvelles. 164
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!

 La recherche Web peut-elle faire le travail?

Défis:

 Comprendre le langage humain


 Commentaires positifs ou négatifs

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

forme de fichiers sur le disque dur local.

 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

mots qui indiquent les sentiments positifs, négatifs ou neutres du réviseur.

167
VIII.Text Analytics

Text Analytics: Cas d'utilisation: Analyse des sentiments à l'aide Text Analytics

For movie Ra.One

For movie Swades 168


VIII.Text Analytics

Text Analytics: Terminologie

 AQL: Annotation Query Language


 Langue pour développer des extracteurs d'analyse de texte dans Text Analytics
 Similaire à SQL mais avec plusieurs différences
Tokenization
 Fait à l'analyse morphologique - détecte les limites de jeton, les parties du discours
Regular expression
 Utilisé pour reconnaître les modèles de texte.
 Par exemple. Modèle de numéro de téléphone
Dictionary
 Une liste d'entrées contenant des termes spécifiques au domaine
 Fichier de dictionnaire: un fichier avec l'extension .dict
 Par exemple. dictionnaire des noms de villes, dictionnaire des entreprises informatiques
Annotation
 Un texte étiqueté, correspondant à un critère particulier Annotation
 Par exemple. Annotation du nom de la personne For years, Microsoft
Corporation CEO Bill Gates
169
was against open source.
VIII.Text Analytics

Extraction de l'information

 Extraire des données structurées à partir de texte non structuré et semi-structuré


 Exploiter les données extraites dans vos applications

For years, Microsoft


Corporation CEO Bill Gates
was against open source. But Annotations
today he appears to have
changed his mind. "We can be
open source. We love the
concept of shared source," Name Title Organization
said Bill Veghte, a Microsoft Bill Gates CEO Microsoft
VP. " That's a super-important Bill Veghte VP Microsoft
shift for us in terms of code Richard Stallman Founder Free Soft..
access.“

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

AQL - Langage de règles pour Text Analytics

 Langue déclarative pour définir les extracteurs


 Définition claire des règles, des schémas et de la logique relationnelle à travers les
vues
 Compile en algèbre interne (extracteurs compilés exécutables sur un environnement
distribué)
 Similaire à SQL en apparence
 Très facile à lire et à comprendre rapidement

<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

create dictionary namesdict as


('Karl', Mark', 'Marta');

create view PERSON as


extract dictionary 'namesdict’ on D.text as name
from Document D;

create view Phone as


extract regex /\d{3}-\d{3}-\d{4}/ on D.text as number
from Document D;

create view PersonPhone as


extract pattern <P.name> <Token>{0,4} <Q.number>
from Person P, Phone Q;
173
VIII.Text Analytics

Text Analytics: Résumé

 Identifier et extraire des informations structurées à partir de texte non structuré et semi-
structuré

 Moteur d'extraction d'informations basé sur des règles de haute performance

 Extracteurs pré-construits, et boîte à outils pour construire des extracteurs personnalisés

 Un outillage sophistiqué pour aider à construire, tester et affiner les règles

 Développé chez IBM Research depuis 2004


174
IX. Workflow Tools

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

votre cluster Hadoop

 Peut également être utilisé pour extraire des données de Hadoop et les exporter vers des bases

de données relationnelles et des entrepôts de données d'entreprise

 Aide à décharger certaines tâches telles que ETL de Enterprise Data Warehouse à Hadoop pour

un coût inférieur et une exécution efficace

175
IX. Workflow Tools

Flume

 Apache Flume est un service distribué, fiable et disponible pour collecter, agréger et déplacer

efficacement de grandes quantités de données d'événements en streaming.

 Flume vous aide à regrouper les données de nombreuses sources, à manipuler les données,

puis à ajouter les données dans votre environnement Hadoop.

 Ses fonctionnalités sont désormais remplacées par HDF / Apache Nifi.

176
IX. Workflow Tools

Kafka

 Apache Kafka est un système de messagerie de publication et d'abonnement rapide, évolutif,

durable et tolérant aux pannes.

 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

raison de son débit, de sa fiabilité et de sa réplication supérieurs.

 Kafka fonctionne en combinaison avec une variété d'outils Hadoop:

 Apache Storm

 Apache HBase

 Apache Spark 177


X. Data access Tools

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

récupération de données robustes et évolutifs.

 Basé sur BigTable de Google et fonctionne sur YARN

 Considérez-le comme un "HBase hautement sécurisé"

 Caractéristiques:

 Programmation côté serveur

 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

latence en combinant le meilleur des deux mondes:

 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

comme magasin de sauvegarde.

 Il s'agit essentiellement de SQL pour NoSQL

 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

 Tolérant aux pannes

 Utilisé pour traiter de grands volumes de données à haute vitesse

 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

bibliothèque de recherche Java Apache Lucene

 Indexation et recherche en texte intégral

 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

centralisée et plus encore 182


X. Data access Tools

Druid

 Apache Druid est un magasin de données distribué hautes performances, orienté colonnes.

 Requêtes interactives en moins d'une seconde

- L'architecture unique permet des groupements de filtrage multidimensionnels rapides et des

agrégations extrêmement rapides

 Flux en temps réel

- Explorez les événements immédiatement après qu'ils se sont produits

 évolutif horizontalement

 Déployer n'importe où 183


XI. Security Tools

Ranger

 Framework de sécurité centralisé pour activer, surveiller et gérer une sécurité complète des données

sur la plateforme Hadoop

 Gérer un contrôle d'accès précis sur les composants d'accès aux données Hadoop comme Apache

Hive et Apache HBase

 L'utilisation de la console Ranger permet de gérer facilement les politiques d'accès aux fichiers,

dossiers, bases de données, tables ou colonnes

 Les politiques peuvent être définies pour des utilisateurs individuels ou des groupes

 Politiques appliquées dans Hadoop 184


XI. Security Tools

Knox

 API REST et passerelle d'application pour l'écosystème Apache Hadoop

 Fournit une sécurité de périmètre pour les clusters Hadoop

 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

exécutent des travaux

185
XI. Security Tools

Atlas

 Apache Atlas est un ensemble évolutif et extensible de services fondamentaux de

gouvernance fondamentale

 Permet aux entreprises de répondre efficacement à leurs exigences de conformité dans

Hadoop

 Échangez des métadonnées avec d'autres outils et processus à l'intérieur et à l'extérieur de

Hadoop

 Permet l'intégration avec l'ensemble de l'écosystème de données d'entreprise

186

Vous aimerez peut-être aussi