Vous êtes sur la page 1sur 11

Chapitre 1 : introduction

Définition de la big data (les données massives)

Les sources d’émergences de données ( ‫)مصدر انبعاث المعلومات‬

- L’évolution de la technologie
- Internet des objets
- Les médias sociaux

Définition de la big data (les données massives)

C’est une collection des ensembles de données larges, complexes qu’elle est devenue impossible de traiter par les
outils de système de base de données existant ou les applications traditionnelles de traitements des données

Les 3 V du big data :

Variétés  différentes formes de base de données : traditionnelles, image, vidéo Structurés ; semi structurés, non
structurés

Volume grande quantités de données

Vélocités vitesse

Les types de big data :


1 les base de données relationnelles structurées (SGBD :SQL)

2 les base de données variées (SGBD : NOSQL)

3 les base de données semi structurées (XML, JSON)

4 les base de données non structurées : PDF, email ....

5 des fichiers de type blob (image, vidéo, audio)

Stockage des big data


*Les cartes perforées en 1745 : utiliser pour guider l’action de machine d’une matiere automatique

*Les bandes magnetiques en 1950 : utiliser pour enregistrer le son et l’image .

*Disque dur en 1956 : c’est le premiere disque dur d’une apacitée = 50MegaOctée premiere stockage numerique

*Les casettes en 1963 : avec des bandes magnetiques

*Clés USB répandent avec les capacitées 8 , 16 ,24 MO leur atout majiur est : resistances , leur tailles

*Cloud 2007 :
Chapitre 2 : hadoop
C’est quoi HADOOP !
-Hadoop est écrit en java et conçu pour traiter en distribuer une énorme quantité de données structurées et non structurées terabytes,
petabytes

-Hadoop stocke et traite les données comme un grappe hadoop ( cluster  ensembles de nœuds/serveurs)

-Les serveurs peuvent être ajoutés ou retirés du cluster d’une manière logique puisque haddop conçu pour être autonome

-Hadoop est capable de détecter les changements, incluant les échecs, et d’être ajustés à ces changements =>continue à fonctionner sans
interruption

 tolérant de
Historique pannes ,  évolutif (scalable) ‫قابل للتطوير‬
auxHADOOP

Nutch (2002) : moteur de recherche distribué (gratuit,Doug cutting ,Mike Kafarella  le calcul se fait sur quelques machines + quelques
limites et problèmes

GFS et map and reduce (2003-2004) : GFS système fichier distribués, calculs distribués map-reduce développés par Google

Plateforme pour Nutch (2004) : en se basant sur GFS et map-reduce Doug Cutting développe une plateforme pour Nutch

Hadoop (2006) : Doug cutting reprendre les concepts représentés par Google pour résoudre les problèmes rencontrés dans le projet
apache Nutch et crée une nouvelle version appelées hadoop

Exploitation de hadoop (2008) : projet indépendant de la fondation appache

Hadoop 1.0 VS hadoop 2.0

HDFS (Hadoop distributed file system): HDFS! = FS classique mais il existe des bases communes entre les deux
-HDSF permet de récupérer des fichiers en un temps performant

-HDFS reprend de nombreux concept proposées par les systèmes de fichiers classique comme ext2de linux et FAT de Windows

-HDFS divise les fichiers en des morceaux appelées blocs

-HDFS est un système distribué :

Chaque nœud du cluster correspond à un sous ensemble de volume donc pour augmenter le volume il faut ajouter de nœud au cluster alors que le
stockage maximale d’un système classique est la taille globale du disque

-HDFS utilise des tailles de blocs largement supérieurs à ceux des systèmes classiques.

-La taille du bloc sous HDFS est 64 MB, peut-être configurable a 128 MB ou 256 MB

-la taille d’un système classique et 4 KO

-pour éviter la perte des données HDFS réplique les blocs sur plusieurs nœuds

-l’architecture de machine HDFS repose sur des grappes (cluster) chaque cluster inclut un Name nœud et plusieurs data nœuds.
Name noeud
-nœud du nom gère tous les accès au fichier lire écriture création effacement et aussi la réplication des blocs de données sur les data nœuds

-le nœud du nom doit savoir sur quels nœuds de données construisent le fichier complet

-le nœud de nom est le seul point unique de défaillance. Si ce service est arrêté il n’y pas aucun moyen pour extraire les blocs de ce fichier

-hadoop 2.0 a ajoutés un nœud de nom en veille standbay qui recevra les métadonnées de Name nœud actif a travers le nœuds d journal, en cas de
défaillance le nœud standbay prend le relais

Data nœud
-nœud de données fournissent continuellement des messages au nœud de nom

-heartbeat (battement de Cœur) pour d’assurer du fonctionnement correct du nœud de données (quand un heartbeat n’est plus présent, le nœud de nom
fait sortir le nœud de données de cluster et continue à fonctionner comme si rien ne s’est passé )

-il fournissent de blocs ‘Block Report’ contenant la liste des blocs présents

Le modèle de programmation MapReduce

MapReduce permet la programmation distribué (Google 2004 )k des application gourmandes en données d’une façon
simplifiés pour le programmeur qui ne s’intéresse qu’a la partie algorithmique , il transmet alors son programme MapReduce
au plateforme hadoop pou l’exécution

Les données qui sont divisées en blocs et reparties sur plusieurs nœuds de données seront traitées avec deux taches map et
redue seront exécutée sur les nœuds de noms (en parallèle ) , une fois que toutes les instances ont terminée l’exécution les
résultats seront enregistrer localement puis seront
k
Job : MapReduce concerne le travail souhaité par le client, ce travail est constitué de données en entrée (contenues dans
HDFS) d’un programme MapReduce, paramètre d’exécution

On distingue 4 étapes dans le traitement MapReduce :

Map : -diviser les données d’entrées sous forme de plusieurs fragments

-Mapper chacun de ces fragments et obtenir des couples clés, valeur

Etape intermédiaire : shuffle and sort ces couplés clés valeur par clés

Reduce : réduire les résultats partiels de mapper pour avoir le résultat final avec le traitement de reduce

Langage de programmation

-le programmation mapReduce peut être effectuée avec plusieurs langage tels que java, python, R …

-sur Windows l’exécution en local était permise avec Mr job qui as permis le mapper et le reducer dans un seul fichier , pour
l’exécution sous l’Unix ou sur Hadoop sans utiliser Mr job , il faut avoir un fichier pour le mapper , et un fichier pour le reducer

k
Chapitre 3 : NOSQL
Les documents structurés :

-Nos documents sont caractérisés par l’existence d’une structure d’où en parlera d’un document structuré

-Ces documents structurés sont représentés par les format XML and JSON

-Un document traités avec ces deux formats peut être transférer par réseau entre deux machine sans la perte de l’information

Et sans problème de codage et décodage

-les document structurés sont à la base des systèmes distribués visant a des traitements de très grande échelle c’est-à-dire le
NOSQL

Valeur atomique : instance de l’un des types de base usuelles, non décomposables en sous entités (! la date n’est pas une
valeur atomique car elle peut être décomposé en jour /date/ année

Paire clés valeur : est une paire [i, V] tels que i est le clés et v est la valeur

Valeur structuré : toute valeur atomique, liste de valeur structuré, liste de pair de clés valeur

Dictionnaire : est un document

Modèle relationnelle :

-Basé sur les modèles mathématiques pour présenter les données dans des systèmes informatiques

-Basé sur la notion des entités qui sont des tables relationnelles, il y’ a une séparation entre l’organisation logique des données
qui sont bien structurés et fortement typés et l’implémentation physique du moteur

-métadonnées sont stockées dans l’en tête de la table, et la donnée est une valeur atomique, pour accéder à une donnée il
faut indiquer le nom de la colonne et la clé de la ligne

+ avantage de ce système : possibilités d’appliquer des opérations algébriques et logique sur ces données

_ négatif de ce système : parfois les données sont plus complexes

Le NOSQL

NOSQL : NOT Only SQL  donc le SQL existe

NOSQL VS SQL :

Le problème de l’extensibilités du SQL est reconnu par les grande entreprise comme Facebook, Amazon qui ont besoin de
matière en données et d’infrastructures d’où l’apparition du SGBD NOSQL

Les + : évolutives / disponibilités/ tolérant aux panne

Les caractéristiques : sans schéma, système distribué, utilisations des langages et des interfaces qui ne sont pas uniquement
SQL

Les premiers systèmes NOSQL est bigTable de Google et dynamo DB de AMAZON

La différence entre les bases de données NOSQL et les bases de données relationnelle c’est que le NOSQL c’est le fait que
NOsql est une forme de stockage non structurée
Les types de stockage NOSQL

-Les moteur clés valeur : l’utilisation des tableaux de hachage dans l’accès se fait par clés, il s’agit de moteur en mémoire
comme Redis ou système distribuer comme dynamo DB

-les clés peuvent être organisés par groupe clés logique ou la clé est unique dans son groupe, peut être dupliqué dans un autre
groupe

La base de données NOSQL la plus connue qui est construite dans l’entrepôt de valeur est Dynamo DB de Amazon

++ simplifier l’accès aux données (accéder a une donnée complexe(json, blob) par une simple clé (valeur atomique )

Tableau associatif ou dictionnaires = si une valeur elle-même constitué de tableau qui admet de simples clés et des valeur
complexes ou simples

Pas de schéma

Les types de stockage NOSQL

-Les moteurs orientés documents : une base de données orientés documents stocke les données sous forme d’agrégat

-l’agrégat permet de créer une unités d’information complexe qui est traités et stocké d’une façon atomique, l’agrégat ne peut
pas être référencier que par sa racine

-l’entrepôt de document est presque similaire a l’entrepôt de clés valeur puisque les deux n’admettent pas un schéma

-La base de données NOSQL la plus connue qui est construite dans l’entrepôt de documents est Mongo DB

-La base de données orientées document peut être comparable a la table relationnelle, les documents rassemblent aux lignes
de la table

-ces document sont structurées et lisible par le moteur NOSQL

-la format de sérialisation et d’échanges de données est le json contre le XML, il est idéal pour représenter les données semi
structurées et structurées

Les types de stockage NOSQL

-Les moteurs orientés colonnes : inspirées de Google BigTable , et proche de la hachage distribué, les données sont
représenter par lignes(identifiées par une clé unique) et séparées par des colonnes Niveau de structuration plus fort que
les moteur clés valeurs et les moteur documents orientées

Les entrepôts de colonnes ont un accès rapide d’écriture et de lecture

Les base de données NOSQL les plus connues qui sont construitent dans l’entrepôt de colonnes sont BigTable , cassandra,
Hbase

Le stockage sur le disque est organisé par la famille de colonnes, qui sont considérées comme des sous tables

Les types de stockage NOSQL

-index inversés : c’est une correspondance entre un terme, ou contenue et sa position dans un ensemble de données

Exemple Google utilise l’index inversé pour répondre aux recherche de son moteur

Les types de stockage NOSQL

-moteur orientés graphes : c’est une base de données réseau qui utilise des nœuds pour présenter et stocker les données
Exemple de base de données orientées graphe : flock DB, info grid
Sérialisation des documents structurées

La sérialisation désigne la capacité à coder un document sous forme d’une séquence d’octets qui peut voyager sans
dégradation sur le réseau, d’une propriété essentielle dans le cadre d’un système distribué

Document est collection

La représentation arborescente est très puissante plus puissante que la représentation offerte par la présentation tabulaire du
relationnelle

Dans un nuplet relationnelle les valeurs sont dites atomique et ne peuvent pas être décomposable sinon il faut faire le
processus de normalisation

Il est également facile de représenter une table par une collection du document structurées

Il est possible d’encoder une table relationnelle sous la forme du document structurées et chaque document pourrait être plus
complexe qu’une ligne simple relationnelle Pour les données régulier cette représentation n’est pas efficace

Une représentation arborescente XML /JSON est donc plus appropriée pour des données de structure complexe et surtout
flexible

Big data analytique

Définition

L’analytique de big data consiste à examiner des ensembles de données volumineux contenant des types de données
hétérogène pour découvrir :

Les schémas cachés, des corrélations connues, les tendances de marché

Les résultats analytiques peuvent apporter :

Un gain des efficacités gratuite, un meilleur service client, nouvelles opportunités de recettes

Type de stockage analytique

-Pour les systèmes relationnels il existe une séparation entre le moteur relationnelle et le moteur de stockage cette séparation
permet d’isoler de tache :

L’interprétation et l’exécution du code / la gestion physique de stockage et de traitement

-La plateforme hadoop est basé sur map et reduce a travers ces deux taches on peut faire tous ce qu’on veut avec ses données
et accéder a tous les types de fichier et les bases de données
Le problème de stockage avec HDFS

Un fichier écrit en HDFS est immutable, HDFS ne supporte pas l’ajout a l’intérieur de fichier mais il est possible et d’écrire un
fichier et le supprimer

HDF est conçu en premier lieu pour stocker des données analytiques :

 Ecrire le fichier
 Distribué le fichier sur cluster
 Lire le fichier a l’infini

Les dernières versions de hdfs permet d’ajouter de données a la fin de fichier mais il existe toujours des problèmes a résoudre
exemple d’assurer la cohérence entre des fichier répliqués aussi le retour en arrière au cas de mal d’écriture

L’append est maintenant implémenter mais il existe toujours des limitation il n’est pas possibles de réealiser des modification
a l’interieur de fichier (il est possible d’ecrire des fichier log )
Ecosystème Hadoop
Hadoop n’est pas capable a lui seule de répondre à toutes les problématiques reliés au big data

Et par suite L’écosystème Hadoop fournit une collection d’outils et de technologies spécialement concus pour faciliter le
développement, le déploiement et le support des solution BigData

Yarn
Yet another resource Il est ajouté dans la deuxième version de Hadoop
negotiator - Il permet à Hadoop de ne plus reposer uniquement sur le modèle de programmation MapReduce
- Apporte a hadoop une nouvelle architecture NameNode : hadoop a ajouté un nœud de nom en
veille pour chaque cluster en cas de défaillance du nœud du nom , il prendra le relais
Pig -Il est constitué de deux partie : le langage Pig latin et un environnement d’exécution
Traitement les données -Le compilateur converti pig latin a Map Reduce
a l’aide des requêtes -Pig charge les données puis fait plusieurs fonctions tels que grouper, filtrer, enfin les données à l’écran ou
les enregistrer sur hdfs
Pig latin : un langage de haut niveau, type SQL exécuté en MapReduce, une requête pig latin prend en
entrée une table et produit une autre table en sortie
Pig appliques des opérateurs a des flots de données semi structurées
Il faut structurées le modèle en entrée selon le modèle Pig
Hive Il est un logiciel de Data Warehouse initialement créé par Facebook, il permet d’effectuer facilement des
Service de traitement données en provenance d’Apache hadoop
des données a l’aide des -Apache hive traduit les programmes rédigés en langage HiveQl en une ou plusieurs tache java mapReduce
requêtes , Taz ou Sparks (trois moteurs d’exécution pouvant être lancées sur hadoop yarn)
-Les tableau apache hive sont similaire à ceux d’une base de données relationnelles
HBASE -Apache Hbase est une base de données non relationnelle (Nosql ) , reprenant le concept et les
fonctionnalités de google BigTable , open source
-Cette base de données d’exécute generalement sur HDFS
-Elle permet de combiner des sources de données reposant sur différentes strucutres et
différents schémas
-Nativement elle est integrée avec hadoop ,elle fonctionne avec d’autre moteurs d’acces aux
données par le niais de Yarn , son language de programmation est JAva

Mahout Fournit un environnement pour la création des application distribuées d’apprentissage automatique
Machine Learning -if effectue un filtrage, regroupement et classification collaboratifs
-fournit une ligne de commande pour invoquer des algorithmes
-il a un ensemble de libraires contenant diffèrent algorithme incorporés pour de différents cas d’utilisation
Ecrit en java , l(apprentissage automatique est un domaine vaste il existe plusieurs technique les plus
utilisés sont l’apprentissage supervisé et non supervisé
Oozie
Organisateur de travail
Apache Flume
Sqoop
Apache ambari
Zookeeper
Apache Giraph Il est un système de traitement des graphes itératif conçu pour une évolutivité élevée
Apache Hive

 Principe : l’utilisateur envoie ses requêtes Hive. Ces derniers seront convertis en des taches MapReduce
 Avantage de hive :
- Il peut utiliser comme un ETL (Extraction, transform, Load) processus d’extraction des données des système
sources et de leur transfert dans l’entrepôt de données
- Peut manipuler des analyses et des requêtes
- Peut manipuler des ensembles de données larges
- SQL(filters , joins n group by) –
 Hive ne doit pas être utilisé
- Quand la base de données est déjà petite
- S’il n’est pas possible d’avoir un schéma pour la base de données
- Si l’application nécessite un temps de réponse rapide
- Si les bases de données relationnelles peuvent résoudre un problème
 Autres écosystèmes utilisant SQL

 Version de HIVE
HIVE Version originale de Hive , c’est juste un client qui permet d’interroger une base de données avec un Shell interactif
HiveServer 1 Permet des connections JDBC /OBDC a partir un clients SQL réguliers. Mais il n’y a pas de concurrence. il n’est pas possible
d’avoir plusieurs sessions de Hive
HiveServer 2 Permet des connexions JDBC/ODBC qui permet la concurrence. un nouveau outil ligne de commande client appelé Beeline
+ Beeline peut être installé comme un client SQL a côté du CLI initial , Hive peut être installé a l’intérieur ou a l’extérieur de cluster

Metastore intégré : par défaut Hive utilise un métastore intégré Apache derby. Il enregistre les méta donnés sans la
base de données Apache derby
Rq : Derby n’autorise qu’un seul utilisateur pour y accéder
Rq : le stockage est distribué, qui est HDFS
Les dernières versions de Hive permettent les modifications de la base de données
L’interaction Hive /Hadoop s’effectue selon les 3 étapes suivantes :
1- Envoi de la requête HiveQl : en utilisant un client (client Shell, un client JDBC /ODBC ou une interface web) la
requête est envoyée au serveur Hive
2- Planification de la requête : la requête est reçue par le driver (pilote) .elle est compilée , optimisé n et planifiée
comme un job
3- Exécution du job : le job est exécuté sur le cluster Hadoop

1 Partie client
Le client Hive Permet d’entrer des commandes directement depuis le Shell hive ou d’exécuter un ensemble de
CLI commandes hives ecrite dans un fichier Txt, ce client n’est pas compatible avec la nouvelle version de hive
et a été remplacer par Beeline qui est le nouveau client en mode ligne de commande
Le client
JDBC/ODBC
Interface web
2 Partie serveur
Hive server 2 Succède HiveServer, il s’agit d’un conteneur du moteur d’exécution de hive et appelé
couramment pilote il se compose par un compilateur un exécuteur et de metastore
Il assure deux nouvelles fonctionnalités par rapport à Hive server 1 :
- La gestion de l’authentification client
- La gestion des requêtes concurrentes
-
Service thrift : permet de communiquer les client avec l’interface RPC et exécuter leurs requêtes
Modélisation de données dans Hive :

Bases de données : espace de nom qui sépare les tables et les autres unités de données

Tables : les tables dans Hive sont créées da la même manière que dans RDBMS

Partitions : Ici, les tables sont organisées en partition pour regrouper des types de données similaires en fonction de
la clé de la partition

Buckets (clusters) les données présentes dans les partitions peuvent être divisées en compartiments pour une
interrogation efficace

Créer une base de donnée create database + ‘’nom de la base de données ‘’ ;


Afficher les bases de données créer Show databases ;
Supprimer une base de données si elle est vide Drop database + ‘’nom de la base de données ‘’ ;
Supprimer une base de données si elle n’ est pas vide Drop database + ‘’nom de la base données ‘’ cascade ;
Utiliser une base de données comme la base courante Use + ‘‘nom de la base de données ‘’ ;
Créer une table interne (c’est-à-dire dans le warehouse) Create table +’’nom du table ‘’
(Champ1 type, champ2 type, champ3 type, ….)
Rq : lorsque en peut faire un drop pour une table Row format delimited
gérée , la table sera supprimé avec tous ses données fields terminated by ‘,’
STORED AS TEXTFILE ;
Créer une table externe (c’est-à-dire pas dans le Create external table +’’nom du table ‘’
warehouse) (Champ1 type, champ2 type, champ3 type)
 Table vide Row format delimited
Rq : lorsque en peut faire un drop pour une table fields terminated by ‘,’
externe , la table sera supprimé mais les données ne STORED AS TEXTFILE
sont pas le cas Location ‘/home/u1/nom dossier’ ;
Afficher les tables Show tables ;
Monter une table bien spécifique Describe + ‘nom de la table ‘ ;
Charger une table Load DATA LOCAL INPATH=’‘ into table +’nom du table’;
Afficher tout le contenu d’une table Select * from +’ nom de la table ‘ ;
Afficher le nombre d’individu dans une table Select count(*) from ‘nom de la table ‘ ;
Modifier le nom de la table Alter table base.NameTable RENAME TO
base.NewNameTable ;
Ouvrir une base de données appelée toto sous hdfs Hdfs dfs –ls /user/hive/warehouse/toto.db
 On trouve tous les tables crée sous cette base
de donnée sous forme de dossier
Ouvrir une table appelée t1 sous toto Hdfs dfs –ls /user/hive/warehouse/toto.db/t1
 On trouve le fichier que nous avons copier dans
cette table table
Verifier si une table est gérer describe formatted +’nom de la table ‘
si elle est maneged alors elle est une table gérée
visualiser le contenu d’un fichier Vi ‘data.csv’
Connecter le client beeline au HiveServer 2 Beeline –u jdbc:hive2: // -n ‘ nom’ –p ‘password’
Quitter beeline !q

Vous aimerez peut-être aussi