0% ont trouvé ce document utile (0 vote)
1 vues11 pages

Revision BigData ABD

Le document présente un aperçu complet du module Advanced Big Data, abordant des thèmes clés tels que les bases de données NoSQL, Hadoop, HDFS, YARN, Hive, HBase, MongoDB et Neo4j. Il décrit les concepts fondamentaux, les architectures, les opérations CRUD, ainsi que les caractéristiques techniques et les commandes essentielles pour chaque technologie. Enfin, il souligne les points clés à retenir sur les systèmes de gestion de données massives et leurs propriétés.

Transféré par

sarahbelhadej19
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
1 vues11 pages

Revision BigData ABD

Le document présente un aperçu complet du module Advanced Big Data, abordant des thèmes clés tels que les bases de données NoSQL, Hadoop, HDFS, YARN, Hive, HBase, MongoDB et Neo4j. Il décrit les concepts fondamentaux, les architectures, les opérations CRUD, ainsi que les caractéristiques techniques et les commandes essentielles pour chaque technologie. Enfin, il souligne les points clés à retenir sur les systèmes de gestion de données massives et leurs propriétés.

Transféré par

sarahbelhadej19
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ADVANCED BIG DATA

Fiche de Révision Complète

Module Advanced Big Data

Classe 4ERP-BI

Thèmes Hadoop/HDFS · MapReduce · YARN · Hive · HBase · Sqoop · MongoDB · Neo4j · NoSQL
1. Fondamentaux des Bases de Données NoSQL

1.1 Limites du modèle relationnel (SGBDR)


• Montée en charge verticale uniquement → coûts non linéaires, limites physiques.
• Les contraintes ACID sont quasi impossibles à maintenir sur un cluster à grande échelle.
• Point unique de défaillance (SPOF) si le serveur central tombe.

1.2 Les « 4 V » du Big Data


V Définition

Volume Données très nombreuses (To, Po)

Vitesse Flux de données arrivant rapidement de sources multiples

Variété Données structurées, semi-structurées, non-structurées

Véracité Données stockées sur plusieurs sites / centres de données

1.3 Théorème CAP


Dans un environnement distribué, il est impossible de garantir simultanément les trois propriétés suivantes
:
• Consistency — tous les nœuds voient la même donnée après une écriture.
• Availability — chaque requête reçoit une réponse, même en cas de panne.
• Partition Tolerance — le système fonctionne malgré une rupture de communication.
■ Un système distribué doit choisir d'en privilégier deux seulement.

1.4 Propriétés BASE (alternative à ACID)


Propriété Signification

Basically Available Le système garantit la disponibilité.

Soft-state L'état peut changer sans nouvelle entrée (propagation).

Eventual Consistency Le système devient cohérent après un certain temps.

1.5 Les 4 typologies NoSQL


Type Description Exemples

Clé-Valeur Hashtable simple, accès par clé primaire uniquement. Redis, DynamoDB

Documents Documents hiérarchiques (JSON). Pas de jointures né[Link], CouchDB

Colonnes Colonnes dynamiques, pas de valeurs NULL stockées. HBase, Cassandra

Graphes Nœuds + relations, modèle idéal pour les interconnexions. Neo4j, OrientDB
2. Hadoop & HDFS

2.1 Principes de Hadoop


• Traitement distribué de données massives sur un cluster de machines ordinaires.
• Open source → coût optimisé.
• Gestion automatique des pannes (fault tolerance).
• Limite : pas adapté aux requêtes en temps réel ni à faible latence.

2.2 Architecture HDFS — Maître/Esclave


Composant Rôle

NameNode (Maître) Stocke les métadonnées : arborescence, liste des fichiers et blocs (taille par défaut 64 Mo), localisation su

DataNode (Esclave) Stocke les blocs réels. Envoie un heartbeat périodique au NameNode.

Secondary NameNode N'est PAS un serveur de secours. Fusionne le fichier edits + fsimage pour créer un point de contrôle (chec

2.3 Tolérance aux pannes — Réplication


• Facteur de réplication par défaut : 3 copies sur des nœuds différents (Rack Awareness).
• Si un DataNode tombe (absence de heartbeat) : le NameNode ordonne la re-réplication des blocs
perdus.

2.4 Hadoop 1.0 vs Hadoop 2.0


Propriété Hadoop 1.0 Hadoop 2.0

Fédération 1 seul NameNode (≤ 4 000 nœuds) Plusieurs NameNodes (scalabilité horizontale)

Haute disponibilité Inexistante — SPOF Active/Passive NameNodes

Ressources JobTracker + TaskTracker ResourceManager + NodeManager (YARN)

2.5 YARN — Gestion des ressources


YARN sépare la gestion des ressources du traitement des données :
• ResourceManager : gère l'allocation globale des ressources du cluster.
• NodeManager : gère les ressources d'un nœud individuel (CPU, RAM).
• ApplicationMaster : coordonne l'exécution d'un job spécifique.
✔ Avantage clé : plusieurs frameworks (MapReduce, Spark…) peuvent coexister sur le même cluster.

2.6 Commandes HDFS Shell fréquentes


Commande Description

hadoop fs -ls / Lister le contenu d'un répertoire

hadoop fs -mkdir /path Créer un répertoire

hadoop fs -put local /dst Copier un fichier local → HDFS

hadoop fs -get /hdfs local Copier un fichier HDFS → local


hadoop fs -rm /file Supprimer un fichier

hadoop fs -du -h /dir Afficher la taille des fichiers


3. Écosystème Hadoop

3.1 Vue d'ensemble des composants


Outil Rôle

Hive Data Warehouse sur HDFS. Interface SQL (HQL) pour requêter les données.

HBase BD orientée colonnes sur HDFS. Supporte lecture aléatoire + batch.

Pig Langage de script pour le traitement de données.

Sqoop Transfert de données structurées entre bases relationnelles et HDFS.

Flume Collecte et déplacement de données non structurées (logs) vers HDFS.

Oozie Planificateur et gestionnaire de workflows Hadoop.

Mahout Bibliothèque de Machine Learning distribué.

Hue Interface graphique pour naviguer dans HDFS/HBase, éditer Hive, Pig…

3.2 Hive — Tables partitionnées


Pour des requêtes rapides par pays/mois sur des données CSV stockées dans HDFS, on utilise une table
externe partitionnée :
• Table EXTERNE : Hive ne contrôle pas les fichiers HDFS sous-jacents (les données restent à leur
emplacement).
• Clause PARTITIONED BY : permet des requêtes rapides par filtre de partition.
• Clause LOCATION : pointe vers le chemin HDFS racine des données.

CREATE EXTERNAL TABLE ventes ( transaction_id STRING, produit_id STRING,


prix FLOAT, quantite INT, timestamp BIGINT ) PARTITIONED BY (pays STRING, mois STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE
LOCATION '/user/cloudera/data/ventes';

3.3 HBase — Architecture


Composant Rôle

HMaster Coordonne le cluster, gère la DDL (création/suppression de tables), assigne les régions aux RegionServer

RegionServer Gère un sous-ensemble de données (régions). Répond aux lectures/écritures client.

ZooKeeper Service de coordination distribué : surveille l'état du cluster, élit le HMaster actif.

Region Sous-ensemble d'une table trié par row key. Unité de base pour la distribution.

MemStore + HFile MemStore : buffer d'écriture en RAM. HFile : fichier de données sur HDFS après flush.

Commande pour afficher toutes les lignes de la table exam_BI :


scan 'exam_BI'

■ Dans l'output HBase : les lignes sont regroupées par ROW KEY. Un même ROW KEY peut avoir
plusieurs colonnes (cells). Compter les ROW KEY distincts = nombre de lignes insérées.

3.4 Sqoop — Import depuis une base relationnelle


• Outil dédié au transfert de données structurées depuis un SGBDR vers HDFS.
• Conserve les métadonnées (schéma) si utilisé avec --as-avrodatafile ou --hive-import.

sqoop import-all-tables \ -m 2 \ --connect jdbc:mysql://localhost:3306/Exam_Db \


--username=root --password=cloudera \ --compression-codec=snappy \
--as-avrodatafile \ --warehouse-dir='/user/hive/warehouse/[Link]'
4. MongoDB — CRUD & Agrégation

4.1 Opérations CRUD de base


Opération Méthode / Exemple

Insert [Link]({ champ: valeur })

Find [Link]({ critère }, { projection })

Update [Link]({ filtre }, { $set: { champ: val } })

Remove [Link]({ critère }, justOne)

4.2 Opérateurs de requête


Opérateur Signification Exemple

$gt / $gte Supérieur (ou égal) { age: { $gt: 18 } }

$lt / $lte Inférieur (ou égal) { score: { $lte: 98 } }

$in Valeur dans une liste { id: { $in: [1, 2, 3] } }

$exists Champ existe { prof: { $exists: true } }

$or OU logique { $or: [{a:1},{b:2}] }

$and ET logique { $and: [{a:1},{b:2}] }

$regex Recherche par motif { nom: { $regex: '^s' } }

4.3 Pipeline d'agrégation


L'agrégation traite les documents via une série d'étapes successives (stages) :

Stage Rôle

$match Filtre les documents (équivalent WHERE).

$project Sélectionne / calcule des champs (équivalent SELECT).

$group Regroupe les documents (équivalent GROUP BY). Nécessite un champ _id.

$sort Trie les documents.

$limit Limite le nombre de documents.

$skip Ignore N documents.

$unwind Déconstruit un tableau : 1 doc avec tableau de N éléments → N documents.

$lookup Jointure avec une autre collection (équivalent LEFT JOIN).

$out Écrit le résultat dans une nouvelle collection (doit être la dernière étape).

4.4 Exemples de requêtes types (Exercice 5)


a. Afficher uniquement le nom du chef de projet pour les projets 'En cours'
[Link]( { statut: 'En cours' }, { nom: 1, _id: 0 } )
b. Somme des budgets 'Non démarré', triés par budget décroissant
[Link]([ { $match: { statut: 'Non démarré' } },
{ $group: { _id: '$statut', budget_total: { $sum: '$budget' } } },
{ $sort: { budget_total: -1 } } ])

c. Créer un index sur les projets dont le budget est supérieur à 10 000
[Link]({ budget: 1 })

■ Un index ne filtre pas les données, il accélère les requêtes. On indexe le champ budget.

4.5 Disponibilité & Haute Disponibilité dans MongoDB


Mécanisme Caractéristique Explication

Sharding Scalabilité horizontale Distribue les données sur plusieurs shards selon une clé de partitionnement.

Replica Set Haute disponibilité Groupe de nœuds MongoDB (1 primaire + N secondaires). Basculement auto

Pas de SPOF Absence de point unique de défaillance


Le replica set élit automatiquement un nouveau primaire si l'actuel tombe.
5. Neo4j — Base de Données Orientée Graphe

5.1 Modèle de données


Élément Description Fonction

Nœud Entité de base du graphe. Équivalent d'un enregistrement.

Arc / Relation Lien typé et nommé entre deux nœuds. Porte une sémantique (ex : 'FRIEND').

Propriété Paire clé-valeur. Présente sur les nœuds ET les relations.

Label Nom organisant les nœuds. Permet de créer des groupes (ex : Person).

5.2 Caractéristiques techniques


• Native Graph Storage : structures de stockage dédiées aux nœuds et relations.
• Native Graph Processing : pointeurs physiques pour parcourir les relations sans index (millions de
sauts/seconde).
• Transactions 100% ACID.
• Requêtes 10 à 100× moins de code qu'en SQL.
• Modélisation Whiteboard Friendly : le schéma en base reflète le schéma sur tableau blanc.

5.3 Cypher — Commandes essentielles


Opération Commande Cypher

Créer un nœud CREATE (n:Person {name: 'Alice'})

Trouver des nœuds MATCH (n:Person) RETURN n

Filtrer MATCH (n:Person) WHERE [Link] > 30 RETURN n

Créer une relation MATCH (a:Person),(b:Person) WHERE [Link]='A' AND [Link]='B' CREATE (a)-[:FRIEND]->(b)

Trouver voisins MATCH (n)-[:FRIEND]->(m) RETURN [Link]

Supprimer une propriété MATCH (n:Person {name:'John'}) REMOVE [Link]

Afficher en graphe Ajouter la clause : (aucune commande supplémentaire — résultat graphe dans l'interface Neo4j Browser)
6. QCU Corrigés — Exercice 6 de l'examen
1. Quel est le rôle de : MATCH (n)-[:FRIEND]->(m) RETURN [Link]
✔ a. Retourne tous les nœuds ayant une relation FRIEND avec n.
b. Retourne toutes les relations FRIEND dans la base.
c. Crée une nouvelle relation FRIEND entre deux nœuds.
d. Aucune de ces réponses.
2. Supprimer la propriété name du nœud 'John' :
a. SET [Link] = null
b. DROP [Link]
c. DETACH name
✔ d. Aucune de ces réponses → Correct : MATCH (n {name:'John'}) REMOVE [Link]
3. Créer un nœud Person nommé 'Alice' dans Neo4j :
a. INSERT (n:Person {name: 'Alice'})
b. ADD (n:Person {name: 'Alice'})
c. NEW (n:Person {name: 'Alice'})
✔ d. Aucune de ces réponses → Correct : CREATE (n:Person {name: 'Alice'})
4. Modéliser le résultat en graphe dans Neo4j :
a. SCAN Graph
b. PRINT Graph
c. SHOW Graph
✔ d. Aucune de ces réponses → le Browser affiche le graphe automatiquement
5. Les bases de données NoSQL sont :
✔ a. Recommandées dans un contexte d'IA.
b. Non recommandées dans un contexte d'IA.
c. Obligatoires pour les traitements basés sur un modèle d'IA.
d. Aucune de ces réponses → elles peuvent être utilisées selon le contexte.
6. Les bases de données NoSQL se basent toujours sur :
a. Le sharding des données.
b. Le drainage des données.
c. Les réponses a et b.
✔ d. Aucune de ces réponses → pas toujours sur le sharding.
7. Rôle du JobTracker vs TaskTracker dans Hadoop v1 :
a. JobTracker exécute les tâches Map/Reduce, TaskTracker gère les blocs.
✔ b. JobTracker planifie l'exécution des tâches, TaskTracker les exécute sur les DataNodes.
c. JobTracker surveille les DataNodes, TaskTracker gère les ressources.
d. JobTracker gère les données HDFS, TaskTracker fait le MapReduce.
7. Mémo — Points Clés à Retenir
Thème Point clé

HDFS Bloc = 64 Mo par défaut | Réplication × 3 | Secondary NameNode ≠ backup

YARN ResourceManager + NodeManager remplacent JobTracker + TaskTracker

Hive Table EXTERNE + PARTITIONED BY pour des requêtes rapides par pays/mois

HBase scan 'table' pour tout afficher | compter les ROW KEY distincts = nb lignes

Sqoop --as-avrodatafile pour conserver les métadonnées

MongoDB $group nécessite _id | $out = dernière étape | createIndex() pour indexer

Neo4j CREATE (pas INSERT) | REMOVE (pas DROP) | pas de commande SHOW Graph

CAP Impossible de garantir C + A + P simultanément

BASE Basically Available + Soft-state + Eventual Consistency

NoSQL Complément du relationnel — pas un remplacement total

Vous aimerez peut-être aussi