100% ont trouvé ce document utile (1 vote)
106 vues59 pages

Cours sur le Big Data à l'ENSET

Le cours de Big Data à l'Ecole Normale Supérieure de l'Enseignement Technique vise à maîtriser les concepts, technologies et architectures du Big Data, notamment Hadoop et NoSQL. Il aborde les défis liés à la gestion des données massives, y compris le stockage, le traitement et l'analyse, ainsi que les outils associés. Le document présente également l'écosystème Hadoop et les opérations de lecture et d'écriture dans le système de fichiers HDFS.

Transféré par

HAMZA RABIH
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
100% ont trouvé ce document utile (1 vote)
106 vues59 pages

Cours sur le Big Data à l'ENSET

Le cours de Big Data à l'Ecole Normale Supérieure de l'Enseignement Technique vise à maîtriser les concepts, technologies et architectures du Big Data, notamment Hadoop et NoSQL. Il aborde les défis liés à la gestion des données massives, y compris le stockage, le traitement et l'analyse, ainsi que les outils associés. Le document présente également l'écosystème Hadoop et les opérations de lecture et d'écriture dans le système de fichiers HDFS.

Transféré par

HAMZA RABIH
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

Ecole Normale Supérieure de l'Enseignement Technique

(ENSET)

Cours Big Data

Abdelmajid BOUSSELHAM
Email: bousselham@[Link]
Researchgate : [Link]
Google Scholar: [Link]
Scopus: [Link]
Linkedin: [Link]

1
Objectifs détaillés

➢ Maitriser les fondements du Big Data et les techniques de mise en œuvre des
architectures du Big Data :

▪ Maitriser les concepts du Big Data,

▪ Identifier les besoins et problématiques métiers liés au stockage et à l’exploitation


des données massives,

▪ Maitriser les technologies et architectures implémentées pour le Big Data,

▪ Concevoir et mettre en œuvre des solutions pour un projet Big Data,

▪ Maitriser l’environnement Hadoop: Installer, utiliser et administrer une distribution


Hadoop 2.x

▪ Manipuler des données non relationnelles (NoSQL, technologies Hbase, Cassandra,


MongoDB) et les langages associés.

2
Big data

➢ Explosion de la quantité de données par


▪ Les application: les réseaux sociaux, les application web, les objets connectés, les logs etc..

➢ Il est nécessaire de chercher des moyens qui permettent :

▪ Transmettre et diffuser les données entre les applications distribuées


(brokers: Kafka, ActiveMQ, RabbitMQ)
▪ Stocker et sécuriser les données d’une manière distribué (Hadoop HDFS,
NoSQL: Cassandra, MongoDB, Hbase,Elastik Search, etc… )

▪ Traiter et analyser les données d’une manière distribuée en vue d’en extrairre la
connaissance pour des prises de décisions
• Big data Processing : Batch Processing (Map Reduce, Spark) et Stream processing (Spark,
Kafka Stream, Flink, Storm, Samza)
• Maching learning (TensorFlow, DeapLearning4J, Weka, etc…) pour l’extraction de la
connaissance
▪ Analyser et Visualiser les indicateurs de prises de décisions

• Big Data visualisation Tools

3
Big Data: 5V

➢ Volume :
▪ Quantité de données (l’ordre de PO)

➢ Variété :

▪ Différents formats de données (Structurés: 20% ou non structurées: 80%)

▪ Texte, CSV, XML, JSON, Binaires, BDR, etc..

➢ Vélocité : fréquence de l’arrivée de données

➢ Véracité :
▪ Fiabilité et la crédibilité des données collectées (sources fiables)
➢ Valeur :
▪ Profil et la connaissance que l’on peut extraire de ces données

▪ Transformer les données en valeur

4
Exemple de problème : Campanie aérienne

5
Ordre de mesure de stockage de données

6
Le big data dans la vie courante: un cuisinier pour traiter les commandes

7
Le big data dans la vie courante: un cuisinier pour traiter les commandes

8
Le big data dans la vie courante: distribuer les tâches et le stockage

9
Eco-système Hadoop

➢ Hadoop est un Framework qui permet de stocker et traiter une grande quantité de
données d’une manière parallèle et distribuée.

10
Eco-système du Big Data: Apache Hadoop

➢ Hadoop est un Framework libre et Open source écrit en java, destiné à faciliter la création
d’applications massivement distribuées avec des milliers de nœuds.

▪ Au niveau de stockage distribué de données( des PO de données): HDFS


▪ Au niveau de traitement de données : Map Reduce
▪ Avec la prise en charge de caractéristiques fondamentales :
o Haute disponibilité, Scalabilité, Tolérance aux pannes,
reprise après échec, sécurité.
▪ Le Framework Hadoop de base se compose des modules suivants :

o Hadoop Distributed File System (HDFS):


le système de fichier distribué.
o Hadoop YARN (Yet Another Resource Negociator):
Système de gestion des ressources de cluster
o Hadoop Map Reduce: Traitement distribué de données

11
Eco-système du Big Data: Apache Hadoop

12
Ecosystème du Big Data

➢ L’écosystème du Big data s’est élargi avec beaucoup d’outils comme :


▪ Stream Processing :
o Apache Storm : Framework de calcul et de traitement distribué de flux de données (Stream Processing)
o Apache Flink : Framework de calcul et de traitement distribué de flux de données (Stream Processing)
o Apache Spark : Framework de calcul et de traitement distribué de de données Big data (Alternative de
Map Reduce) et de Stream Processing
o Apache Kafka Streams : Framework de Streaming de données en temps réel entre les applications
distribuées et système de Messagerie applicative.
▪ Apache Zookeeper : Système de gestion de configuration des systèmes distribués pour assurer la
coordination entre les nœuds.
▪ SGBD NoSQL :
o Apache Hbase : SGBD NoSQL distribué (Stockage structuré pour les grandes tables).
o MongoDB : SGBD NoSQL : les données sont stockées d’une manière distribuée dans plusieurs nœuds
sous forme de documents au format JSON.
o Cassandra : SGBD NoSQL : les données sont stockées d’une manière distribuée dans plusieurs nœuds
sous forme de documents au format JSON.
o ElasticSearch : Moteur de recherche distribué et multi-entité à travers une interface REST.

▪ Hazelcast : Cache mémoire distribué, SGBD NoSQL en mémoire, Système de Messagerie applicative.

15
Ecosystème du Big Data

▪ Apache Pig: Plateforme de haut niveau de création d’applications Map Reduce (Langage Pig latin qui
ressemble à SQL) au lieu d’écrire du code Java.
▪ Apache Hive: Infrastructure d’entrepot de données pour l’analyse et le requêtage avec un langage de SQL.

▪ Apache Phoenix: Moteur de base de données relationnel qui se repose sur Hbase.
▪ Apache Impala: Moteur de requêtes SQL de cloudera pour un système basé sur HDFS et Hbase

▪ Apache Flume: Système de collecte et d’analyse des fichiers logs.

▪ Apache Sqoop: Outils sur ligne de commandes pour transférer les données entre les SGBD relationnels et
Hadoop.
▪ Apache Oozie: Outil d’ordonnancement des flux Hadoop.

16
Zookeeper
Coordination

Flume
Log data collector

HDFS
Impala
SQL
Ecosystème du Hadoop

Spark
Large scale data proceesing

YARN

Hadoop Distributed File System


Mahout
Machine learning

Oozie
Cluster resource manager Workflow manager

Sqoop
Data exchange with RDBMS
MapReduce

Pig
Scripting

Hive
SQL
17

HBase
NoSql columnar store
HDFS: Hadoop File System

➢ Solution de stockage de données massives (des PO) d’une manière distribuée

➢ Tolérant aux pannes avec la réplication des données.

Année Universitaire 2021/2022 19


Système de fichiers classique

➢ Un système de fichiers permet de

▪ Gérer les répertoires et fichiers


o Gréer, copier, supprimer, renommer, déplacer
o Gréer les droits d’accès
▪ Les fichiers sont organisés dans une structure hiérarchique
dans des répertoires.

▪ Les dossiers et les fichiers sont stockés dans des unités de


stockage (Disque dur, disque amovibles, etc.) locales
organisés en partitions.

▪ Chaque OS dispose de son propre système de fichiers.

▪ Quand la quantité de données gérées atteint les limites de


stockage de la machine, on cherche à étendre les capacités en
ajoutant d’autres disques durs supplémentaires : Vertical
Scaling (Scalabilité Verticale).

Année Universitaire 2021/2022 20


HDFS

➢ HDFS est un système de fichiers

➢ Système de fichier distribué

➢ HDFS permet de combiner les capacités de


plusieurs machines distribués sous forme
d’un unique système très large.

➢ HDFS permet de combiner les capacités de


plusieurs machines distribués sous forme
d’un unique système très large. Horizontal scaling
➢ Il permet de créer des répertoires et stocker les
données dans des fichiers d’une manière
distribuée dans plusieurs machines.

➢ Caractéristiques de HDFS:
▪ Distribué
▪ Scalable Horizontalement
▪ Cost effective (Commencer par de simple machines)

▪ Faut Tolérant (Tolérant aux panes)

Année Universitaire 2021/2022 21


Architecture cluster Hadoop – Topologie maître esclave

▪ NameNode (Master Server)


▪ Resource Manager (Master server)

▪ DataNode (Slave Agent )


▪ Node Manager (Slave Agent)

Année Universitaire 2021/2022 22


Architecture cluster Hadoop – Topologie maître esclave

Année Universitaire 2021/2022 23


Architecture cluster Hadoop – Topologie maître esclave

➢ NameNode
▪ Maintient et gère les DataNodes Central machine
▪ Gère les métadonnées, par ex. les emplacements des blocs stockés, NameNode
la taille du fichier, les autorisations, la hiérarchie, etc.
▪ Reçoit périodiquement Heartbeat et blockreport de tous les DataNodes.

Metadata :
NameNode(Filename,NumReplicas,Block-ids,…)
e.g.
/users/orders/data/part-0, r:2, {1,3}
/users/orders/data/part-1, r:3, {2,4,5}
➢ DataNode
▪ Stocke les données,
▪ Envoie périodiquement un HeartBeat au NameNode pour
pour signaler sa présence ou de tout changement dans les blocs,
▪ Répondre aux demandes de lecture et d'écriture des clients

Rack1 Rack2 Rack3 Rack4

DataNodes (Commodity hardware)

Année Universitaire 2021/2022 24


Comment les données sont stockées dans HDFS ?

➢ HDFS est conçu pour stocker de manière fiable des fichiers très volumineux sur des
machines dans un grand cluster.

➢ Il stocke chaque fichier sous la forme d'une séquence de blocs ;

➢ Tous les blocs d'un fichier à l'exception du dernier bloc ont la même taille.

➢ La taille par défaut de chaque bloc (sauf le dernier) est de 128 Mo dans Hadoop 2.x
(64 Mo dans Hadoop 1.x)

➢ Exemple - Considérons le fichier « [Link] » de taille 356 Mo. Ci-dessous la


représentation de la façon dont il sera stocké sur HDFS :

[Link] split BLK 1 BLK 2 BLK 3


128 MB 128 MB 100 MB
356 MB

Année Universitaire 2021/2022 25


La réplication des blocs

➢ Les blocs d'un fichier sont répliqués pour la tolérance aux pannes.

➢ La taille de bloc et le facteur de réplication sont configurables par l’utilisateur.

➢ Une application peut spécifier le nombre de réplications d'un fichier.

➢ Le facteur de réplication peut être spécifié au moment de la création du fichier et


peut être modifié ultérieurement.

➢ La taille du bloc et le nombre de réplications sont configurables dans le fichier [Link].

Année Universitaire 2021/2022 26


La réplication des blocs

NameNode (Filename, NumReplicas, Block-idS, …)


/users/sales/data/ordes-0, r:2, {1,3}…
/users/sales/data/ordes-1, r:3, {2,4,5}…
Namenode

1 3 4 2 4 1 5 3 5

2 5 4 2

Datanodes Datanodes

Rack1 Rack2

Année Universitaire 2021/2022 27


Opérations d'écriture de données HDFS

HDFS Data Write Operations

Année Universitaire 2021/2022 28


HDFS

1. Le client Hadoop envoie une requête au NN pour demander de créer un fichier

2. Le NN procède quelques vérification: Existence, droits d’accès en utilisant le fichier FS Image

4. Le client écrit les données dans FSDataOutputStream

4. Pour chaque block de 128 MB, le client HDFS demande au NN l’allocation du block.

5. Le NN assigne un DN pour ce block.

6. Le streamer envoie les données du block au DN.

7. Une fois toutes les données sont écrites, le NN commit les modifications dans le
Système de fichier.

Année Universitaire 2021/2022 29


Opérations de lecture de données HDFS

HDFS Data Read Operations

Année Universitaire 2021/2022 30


Opérations de lecture de données HDFS

1. Le client contacte NN pour obtenir l'emplacement des blocs de données du fichier


qu'il veut lire.
2. Le NN renvoie la liste des adresses des DN pour les blocs de données.

3. Pour toute opération de lecture, HDFS tente de renvoyer le nœud avec le bloc de
données le plus proche du client. Ici, le plus proche fait référence à la proximité du réseau
entre le DN et le client.

4. Une fois que le client a la liste, il se connecte au DN le plus proche et commence à lire
le bloc de données à l'aide de Stream.

5. Une fois le bloc lu complètement, la connexion à DN est terminée et le DN qui


héberge le bloc suivant dans la séquence est identifié et le bloc de données est diffusé
en continu. Cela continue jusqu'à ce que le dernier bloc de données de ce fichier soit lu.

Année Universitaire 2021/2022 31


Hadoop: Les commandes shell

➢ Pour exécuter les commandes shell du Hadoop pour le système de fichier en utilise les
commandes suivantes :
▪ hadoop fs –commande ou hdfs dfs -commande

➢ La commande « hdfs dfs » est utilisée uniquement pour la manipulation du système de fichier
hadoop HDFS.
➢ « hadoop fs » couvre également une plus grande variété de données présentes sur les
plateformes externes. Ces plateformes externes inclues également les données du système de
fichier local.

Année Universitaire 2021/2022 32


Hadoop: Les commandes shell

➢ jps
▪ Commande pour afficher les processus Hadoop.

➢ hadoop version

▪ Affiche la version du Hadoop.


➢ hadoop fs –help cat
▪ Affiche l’aide sur une commande.

➢ hdfs dfs -put <localsrc> ... <HDFS dst>


➢ hdfs dfs -copyFromLocal [-f] <localsrc> <HDFS dst>
▪ Permet de copier une seule src ou plusieurs srcs du système de fichiers local vers le système de
fichiers de destination. Lit également l'entrée de stdin et écrit dans le système de fichiers de
destination.

Année Universitaire 2021/2022 33


Hadoop: Les commandes shell

➢ hdfs dfs -get <HDFS src> <localdst>


➢ hdfs dfs -copyToLocal <HDFS src> <localdst>
▪ Copier les fichiers dans le système de fichiers local.

➢ hdfs dfs -moveFromLocal <localsrc> <HDFS dst>


▪ Similaire à la commande put, sauf que la source localsrc est supprimée après sa copie.

➢ hdfs dfs -cat <path_file>


▪ Affiche le contenu du fichier.

Année Universitaire 2021/2022 34


Hadoop: Les commandes shell

➢ hdfs dfs -cp [-f] <HDFS src> <HDFS dest>


▪ Copie les fichiers de la source vers la destination. Cette commande autorise également plusieurs
sources, auquel cas la destination doit être un répertoire.

➢ hdfs dfs -mv <HDFS src> <HDFS dest>


▪ Déplace les fichiers de la source à la destination. Cette commande autorise également plusieurs
sources, auquel cas la destination doit être un répertoire. Le déplacement de fichiers entre les
systèmes de fichiers n'est pas autorisé.

➢ hdfs dfs -rm [-skipTrash] <Path>


▪ Supprimer les fichiers et les répertoires non vides

▪ Si l'option -skipTrash est spécifiée, la corbeille, si elle est activée, sera ignorée et le ou les fichiers
spécifiés seront immédiatement supprimés.

Année Universitaire 2021/2022 35


Hadoop: Les commandes shell

➢ hdfs dfs –rmr [-skipTrash] <path>


▪ Version récursive de rm. Si l'option -skipTrash est spécifiée, la corbeille, si elle est activée, sera
ignorée et le ou les fichiers spécifiés seront immédiatement supprimés.

➢ hdfs dfs -rmdir <path>


▪ Supprimer un répertoire vide

➢ hdfs dfs -mkdir [-p] <path>


▪ Crée des dossiers dans HDFS

➢ hdfs dfs -ls <arg>


▪ Affiche le contenu d’un répertoire

Année Universitaire 2021/2022 36


Hadoop: Les commandes shell

➢ hdfs dfs -touchz <path_file>


▪ Créé un fichier vide.

➢ hdfs dfs -expunge


▪ Vider la corbeille.

➢ hdfs dfs –du <path>


▪ Affiche la taille des fichiers et des répertoires contenus dans le répertoire donné.

Année Universitaire 2021/2022 37


API pour utiliser HDFS en Java

➢ La lecture et l'écriture de données dans Hadoop Distributed File System


(HDFS) peuvent être effectuées de plusieurs façons.

➢ Dans cette partie nous allons utiliser une API Java pour écrire dans un
fichier dans HDFS.

➢ Ensuite nous allons créer une application pour lire un fichier à partir de
HDFS et le réécrire dans le système de fichiers local.

Année Universitaire 2021/2022 38


API pour utiliser HDFS en Java

➢ La première étape, il faut ajouter la dépendance avec Maven dans le


fichier [Link].

Année Universitaire 2021/2022 39


API pour utiliser HDFS en Java

➢ L’exemple suivant montre comment lire à partir d’un fichier texte dans
HDFS :

Année Universitaire 2021/2022 40


API pour utiliser HDFS en Java

➢ L’exemple suivant montre comment écrire dans un fichier texte dans


HDFS :

Année Universitaire 2021/2022 41


API pour utiliser HDFS en Java

➢ Méthodes de la classe FileSystem :

Méthode Description

void copyFromLocalFile Copier un fichier dans le système de fichiers HDFS.

boolean copyToLocalFile () Copier un fichier dans le système de fichiers local.

FSDataOutputStream create() Teste si le fichier ou le répertoire existe.


String createNewFile () Crée le Path donné en tant que tout nouveau fichier vide.

boolean delete () Supprimer un fichier.

boolean exists () Vérifiez si un chemin existe.


FileStatus getFileStatus () Renvoie un objet qui représente l'état de fichier .
boolean isDirectory () Renvoie true si le chemin nommé est un répertoire.
boolean isFile() Renvoie true si le chemin nommé est un fichier.
boolean mkdirs () Permet de créer un répertoire.
RemoteIterator<LocatedFileStatus> listFiles () Lister le contenu d’un répertoire.

Année Universitaire 2021/2022 42


MapReduce et YARN

Année Universitaire 2021/2022 43


Introduction à MapRuce

➢ MapReduce est conçu et développé sur la base de la thèse MapReduce publiée


par google en 2004. Basé sur le principe "diviser pour mieux régner",
MapReduce est utilisé pour le traitement parallèle des données massives
stockées dans le Hadoop File System (HDFS). MP est :

▪ Un paradigme de programmation pour le calcul de de données massives.


▪ Un modèle d'exécution parallèle et distribué.
▪ Simple à programmer.

➢ MR est dans des applications comme :


▪ Rechercher, trier, regrouper.
▪ Statistiques.
▪ Pré-traiter d'énormes données pour appliquer des algorithmes de machine
learing.
▪ Classification : forêt aléatoire, régression…
▪ Clustering: k means, hierarchical, density, bi-clustering.
▪ Traitement de texte, reconnaissance de formes, analyse de sentiments ...
▪ …
Année Universitaire 2021/2022 44
Les opérations map et reduce

➢ Comme son nom l'indique, le processus de calcul MapReduce peut être divisé
en deux phases : Map et Reduce. La sortie dans la phase Map est l'entrée dans
la phase Reduce.

▪ La phase Map permet de transformer les entrées du disque en paires


<key,value>, les traite et génère un autre ensemble de paires <key,value>
intermédiaires en sortie.

▪ La phase Reduce permet de transformer également les entrées en paires


<key,value> et génère une des paires <key,value> en sortie.

Année Universitaire 2021/2022 45


Le processus de MapReduce

Année Universitaire 2021/2022 46


Exemple : Word Count

Année Universitaire 2021/2022 47


Phases principales de MapReduce

➢ MapReduce est principalement composé de :

▪ Map : prend en entrée un objet avec une clé (k,v) et renvoie un ensemble de paires
clé-valeur : (k1,v1),(k2,v2),…,(kn,vn)

▪ Shuffle and Sort: les paires clé-valeur de chaque tâche Map sont collectées, triées et
regroupées par clé (Shuffle and Sort).
o Tous les couples de même clé ki sont collectés et combinés dans : (ki,[vi1,vi2,…]) :
regroupe par clé et génère des couples de la forme (k1, [v11, v12, . . . ]) , . . . , (kn,
[vn1, vn2, . . . ])
o Les clés sont réparties entre toutes les tâches Reduce, de sorte que toutes les
paires clé-valeur avec la même clé se retrouvent dans la même tâche Reduce.

▪ Reduce : prend en entrée une clé et une liste de valeurs (ki,[vi1,vi2,...]) et les combine
d'une manière ou d'une autre.

o il additionne toutes les valeurs et envoie : (k1, v1) , . . . , (kn, vn)

Année Universitaire 2021/2022 48


Phases principales de MapReduce

Année Universitaire 2021/2022 49


Phases principales de MapReduce

➢ Combien de maps et de reducers sont crées ?

▪ Peut être défini dans un fichier de configuration (JobConfFile) ou lors de


l'exécution de la ligne de commande

▪ Nombre de maps : déterminé par le nombre de blocs HDFS dans les fichiers
d'entrée. on pout ajuster la taille du bloc HDFS pour ajuster le nombre de
cartes.

▪ Nombre de reducers : peut être défini par l'utilisateur (la valeur par défaut est 1).

Année Universitaire 2021/2022 50


Hadoop YARN

➢ L'architecture d'Hadoop a été modifiée dans la version 2.0 pour introduire YARN ( Yet
Another Ressource Negociator).
➢ YARN un framework permettant d'exécuter n'importe quel type d'application distribuée
sur un cluster Hadoop, pas uniquement les applications MapReduce.

➢ YARN propose en effet de séparer la gestion des ressources du cluster et la gestion des
jobs MapReduce, permettant ainsi de généraliser cette gestion des ressources et
permettre à d’autres Frameworks de batch processing ou de stream processing de traiter
les données stockées dans HDFS.

Année Universitaire 2021/2022 51


Hadoop YARN

➢ YARN composants de l'architecture comprennent :

Année Universitaire 2021/2022 52


Hadoop YARN

➢ YARN composants de l'architecture comprennent :

• Client : Il envoie les Jobs MapReduce.

• Resource Manager : est le chef d'orchestre des ressources du cluster. Il ordonnance les requêtes
clients et pilote le cluster par l'intermédiaire de node managers qui s'exécutent sur chaque Data
Node. Il a donc pour rôle de contrôler toutes les ressources du cluster et l'état des machines qui
le constituent. Il gère donc le cluster en maximisant l'utilisation de ressources. Il contient deux
composants majeurs :

• Scheduler: Il effectue la planification en fonction de l'application allouée et des ressources


disponibles.

• Application manager : Il est chargé d'accepter l'application et de négocier le premier Container


auprès du Ressource Manager. Il redémarre également le Container Application Master si une
tâche échoue.

Année Universitaire 2021/2022 53


Hadoop YARN

• Application Master : Il est responsable de la négociation des ressources avec le Resource


Manager, du suivi de l'état et de la progression d'une seule application.

• Container : il s'agit d'un ensemble de ressources physiques telles que la RAM, les cœurs
de processeur et le disque sur un seul nœud.

• Node Manager : héberge des containers et gère donc les ressources du nœud. Il est en
communication via un heartbeat avec le ressource manager.

Année Universitaire 2021/2022 54


Exécuter une application avec YARN

1. Le client soumet le job à effectuer au resource manager sous la forme d'une


archive .jar et des noms des fichiers d'entrée et de sortie.
2. Le resource manager alloue alors un container pour l'application master sur un node
manager.

3. L'application master demande au resource manager un ou plusieurs containers avec des


préférences de localisation dépendant de la localité des données d'entrée du job.

4. Le resource manager alloue alors un ou plusieurs containers à l'application master.

5. L'application master choisit parmi la liste des tâches et démarre une instance de la tâche (par
exemple Map et Reduce) choisie dans un des containers qui lui a été alloué. Il collabore alors
avec le node manager pour utiliser les ressources acquises.

Année Universitaire 2021/2022 55


Exercice 1

➢ Analyse de données Employés :


▪ Exemple de données d'entrée

▪ Les noms de colonnes


firstName,lastName,department, jobTitle,salary

▪ Problème à résoudre
1. Étant donné une liste d'employés avec leur département et leur salaire, trouvez le salaire
maximum et minimum dans chaque département.
2. Étant donné une liste d'employés avec leur département, trouvez le nombre d'employés dans
chaque département.

Année Universitaire 2021/2022 56


Exercice 2

➢ Analyse de données météo :

▪ URI: [Link]
▪ C'est un bon exemple d'analyse avec MapReduce, car les capteurs collectent toutes
les heures des données météorologiques du monde entier.
▪ Les données sont semi-structurées.

▪ Les données sont importées des National Centers from Environmental Information. Il
s'agit d'un format ASCII orienté ligne. Chaque ligne est un enregistrement contenant
de nombreuses informations.

▪ Problème à résoudre
1. Extraire les valeurs de température et calculer la température minimale et maximale pour chaque
année.

Année Universitaire 2021/2022 57


Sqoop

Année Universitaire 2021/2022 58


Sqoop

▪ Sqoop est un outil conçu pour transférer des données entre Hadoop et des
serveurs de bases de données relationnelles. Il est utilisé pour importer des
données à partir de bases de données relationnelles telles que MySQL,
Oracle vers Hadoop HDFS et exporter du système de fichiers Hadoop vers
des bases de données relationnelles.

Année Universitaire 2021/2022 60


Installer Sqoop

▪ Télécharger le package Sqoop pour hadoop 2 avec la commande suivante :

wget [Link]

▪ Extrayez l'archive téléchargée à l'aide de la commande suivante :

tar -xvf sqoop-1.4.7.bin__hadoop-[Link]

▪ Déplacez le répertoire extrait vers l'emplacement souhaité. Par exemple, vous pouvez
le déplacer vers le répertoire /opt :
sudo mv sqoop-1.4.7.bin__hadoop-2.6.0 /opt/sqoop

Année Universitaire 2021/2022 61


Installer Sqoop

▪ Configurez les variables d'environnement en modifiant le fichier .bashrc à


l'aide d'un éditeur de texte. Exécutez la commande suivante pour ouvrir le
fichier dans l'éditeur nano :
nano ~/.bashrc

▪ Faites défiler jusqu'à la fin du fichier et ajoutez les lignes suivantes :

export SQOOP_HOME=/opt/sqoop
export PATH=$PATH:$SQOOP_HOME/bin

▪ Enregistrez le fichier et quittez l'éditeur de texte.

▪ Chargez les variables d'environnement mises à jour en exécutant la commande


suivante :
source ~/.bashrc
▪ Vérifiez l'installation en exécutant la commande suivante :

sqoop version

Année Universitaire 2021/2022 62


Importer et exporter vers mysql

▪ Importer vers HDFS à partir de mysql:

sqoop import --connect jdbc:mysql://localhost/DB_Spark --username "root" --password ""


--table EMPLOYES --target-dir /sqoop

▪ Exporter vers mysql à partir de hdfs

sqoop export --connect jdbc:mysql://localhost/test_sqoop --username your_username --password


your_password --table employees --export-dir /sqoop/employees_data --input-fields-terminated-by
',' --input-lines-terminated-by '\n'

Année Universitaire 2021/2022 63

Vous aimerez peut-être aussi