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